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

(Comments)

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 で実行するには、拡張子つきを指定すること。

Currently unrated

Comments

Recent Tweets

  • ytyng

    ytyng @ytyng

    apple developer の、テスト用デバイスのUDIDを1年ごとにチェックして、古い端末を消しちゃうやつ チェックボックスを入れたのを残すのか、消すのかの判断まちがって、全部のUDID消えたわ
    9 months ago

  • ytyng

    ytyng @ytyng

    うちの会社 TORICO の 代表が今TV出てます #漫画全巻ドットコム #激レアさんを連れてきた
    9 months, 1 week ago

  • ytyng

    ytyng @ytyng

    Proofpoint にブロックされているIPアドレスからでも icloud など Apple メールアドレスにメール送信されてもブロックされてない…?
    10 months ago

Recent Posts

Archive

2021
2020
2019
2018
2017
2016
2015
2014
2013
2012
2011

Categories

Authors

Feeds

RSS / Atom