Flutter の Windows アプリから VSCode を起動する

投稿者: ytyng 3 年 前
Process.run('code.cmd', ['開きたいファイルパス']);

ポイントとしては、Visual Studio Code をインストールする時に、パスを追加するか聞かれるので、ON にすると

code コマンドで VSCode の起動ができるようになる。

ただし、code は 正しくは code.cmd であり、code だけだと Flutter の Process.run からは起動できないので、.cmd を付ける必要がある。

以上。

----

以下、以前に行った対策で、周りくどい方法だったがメモとして意味ありそうだったので残した。非推奨

Flutter で作った Windows のアプリから、VSCode を起動したかった。

if (Platform.isWindows)  {
var r = await Process.run('where.exe', ['code']);
if (r.exitCode != 0 || r.stdout == '') {
return;
}
var l = stdout.split('\r\n');
Process.run(
l[1], ['開きたいファイルパス']);
}

ちょっと強引だけどこんな感じでやった。

where.exe は、mac や linux でいう which と同じ動作をする。エラー分岐はもっとちゃんとやったほうが良いが、今回は使用者が限られているのでざっくりとこれで。

Process.run の 結果の ProcessResult インスタンスは、コマンドが正常終了すると exitCode == 0 となる。異常終了なら 0 以外、おそらく1とかになる。

ただ、今回は exitCode での判定しなかった。

コマンド結果は ProcessResult の stdout に入る。Windows の場合、改行コードは \r\n となる。

where.exe の結果は、1行目が拡張子無し、2行目が拡張子付きのフルパスが出てくる。Process.run で実行するには、拡張子つきを指定すること。

現在未評価

コメント

アーカイブ

2024
2023
2022
2021
2020
2019
2018
2017
2016
2015
2014
2013
2012
2011