firefox addonを使用してwindowsコマンドを実行してその出力を表示するにはどうすればいいですか?例えばfirefoxアドオンからwindowsコマンドを実行するには?
:私はちょうど一緒にパッケージ化されたバイナリファイル(または)実行可能ファイルを実行するか、他のウィンドウのコマンドを実行して、Firefoxのアドオン開発の多くを探検しようとしています
のping www.stackoverfow.com。
firefox addonを使用してwindowsコマンドを実行してその出力を表示するにはどうすればいいですか?例えばfirefoxアドオンからwindowsコマンドを実行するには?
:私はちょうど一緒にパッケージ化されたバイナリファイル(または)実行可能ファイルを実行するか、他のウィンドウのコマンドを実行して、Firefoxのアドオン開発の多くを探検しようとしています
のping www.stackoverfow.com。
これにはnsIProcessを使用します。あなたのアプリケーションでは、実行するアプリケーションがわからないので、状況はより複雑になります。通常はc:\windows\system32\ping.exe
になりますが、確信が持てません。あなたはPATH
環境変数を自分で解析したくない場合は、コマンドラインシェルがあなたのためにそれを行うことができます。
Components.utils.import("resource://gre/modules/FileUtils.jsm");
var env = Components.classes["@mozilla.org/process/environment;1"]
.getService(Components.interfaces.nsIEnvironment);
var shell = new FileUtils.File(env.get("COMSPEC"));
var args = ["/c", "ping stackoverflow.org"];
var process = Components.classes["@mozilla.org/process/util;1"]
.createInstance(Components.interfaces.nsIProcess);
process.init(shell);
process.runAsync(args, args.length);
参考
:COMSPEC
environment variable、nsIEnvironment。
プロセスから戻ってくるデータを受け取ることはできません。終了したら通知を受け取って失敗したかどうかを知ることができます。コマンドの出力を取得するには、出力をファイルにリダイレクトする必要があります(シェルでping stackoverflow.org > c:\\temp\\foo.txt
コマンドを実行してください)。その後、そのファイルを読み込みます。