Running applications

by 3 contributors:

 

このページでは、Mozilla XPCOM インターフェースを利用して、chrome JavaScript コードから他のプログラムを起動する方法について解説します。プログラムを実行するには二つの方法があります。一つ目はnsILocalFile:launch メソッドで、二つ目は nsIProcess インターフェースです。

nsILocalFile.launch() を利用する

このメソッドは、ファイルをダブルクリックしたのと同じ効果をもたらします。たとえば、実行可能ファイルであれば、ファイルがパラメータ無しで実行されます。いくつかのプラットフォームではこの機能は実装されていませんので、あなたのターゲットとするプラットフォームでこのメソッドが利用可能か確認してください。

nsIFile/nsILocalFile の詳細については、File I/O を参照してください。

var file = Components.classes["@mozilla.org/file/local;1"]
                     .createInstance(Components.interfaces.nsILocalFile);
file.initWithPath("c:\\myapp.exe");
file.launch();

nsIProcess を利用する

最も推奨されるのは、nsIProcess インターフェースを利用する方法です。

// 実行可能ファイルに nsILocalFile を作成する
var file = Components.classes["@mozilla.org/file/local;1"]
                     .createInstance(Components.interfaces.nsILocalFile);
file.initWithPath("c:\\myapp.exe");
// nsIProcess を作成する 
var process = Components.classes["@mozilla.org/process/util;1"]
                        .createInstance(Components.interfaces.nsIProcess);
process.init(file);
// プロセスの起動。
// 最初のパラメータが true なら、スレッドはプロセスが終わるまでブロックされます。 
// 二つ目と三つ目のパラメータは、プロセスのコマンドライン引数になります。
var args = ["argument1", "argument2"];
process.run(false, args, args.length);

リファレンス

 

 

<hints id="hah_hints"/>

ドキュメントのタグと貢献者

タグ: 
Contributors to this page: mooz, Mgjbot, Shimono
最終更新者: mooz,