2012-04-18 14 views
5

firefox addonを使用してwindowsコマンドを実行してその出力を表示するにはどうすればいいですか?例えばfirefoxアドオンからwindowsコマンドを実行するには?

:私はちょうど一緒にパッケージ化されたバイナリファイル(または)実行可能ファイルを実行するか、他のウィンドウのコマンドを実行して、Firefoxのアドオン開発の多くを探検しようとしています

のping www.stackoverfow.com。

答えて

12

これには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 variablensIEnvironment

プロセスから戻ってくるデータを受け取ることはできません。終了したら通知を受け取って失敗したかどうかを知ることができます。コマンドの出力を取得するには、出力をファイルにリダイレクトする必要があります(シェルでping stackoverflow.org > c:\\temp\\foo.txtコマンドを実行してください)。その後、そのファイルを読み込みます。

関連する問題