Code snippets:Running applications
出典: MDC
このページでは、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);
[編集] リファレンス
- nsILocalFile インターフェース
- nsIProcess インターフェース
- XPI の中にある実行可能コードを起動するには、拡張フォルダーパスの取得 を参照
- ウェブページから実行可能なプロセスを起動する