この記事では、JavaScriptを使ってexeファイルを実行する方法について詳しく解説します。
ただし、セキュリティ上の懸念から、この機能の使用には十分な注意が必要です。ユーザーの同意なしにexeファイルを実行することは、悪意のあるソフトウェアの動作につながる可能性があるためです。
1. Runメソッド
object
.Run(strCommand, [intWindowStyle], [bWaitOnReturn])
引数
- strCommand
実行するコマンドラインを示す文字列値 - intWindowStyle
プログラムのウィンドウの外観を示す整数値(省略可能) - bWaitOnReturn
スクリプト内終了を待つかどうかを示すbool値(省略可能)
intWindowStyle
0~10まで、それぞれ用意されているが、基本的に使うのは0、2、3くらいかな
IntWindowStyle | 内容 |
---|---|
0 | ウィンドウを非表示にし、別のウィンドウをアクティブにします。 |
1 | ウィンドウをアクティブにして表示します。 ウィンドウが最小化または最大化されている場合は、元のサイズと位置に戻ります。 アプリケーションでウィンドウを最初に表示するときには、このフラグを指定してください。 |
2 | ウィンドウをアクティブにし、最小化ウィンドウとして表示します。 |
3 | ウィンドウをアクティブにし、最大化ウィンドウとして表示します。 |
4 | ウィンドウを最新のサイズと位置で表示します。 アクティブなウィンドウは切り替わりません。 |
5 | ウィンドウをアクティブにし、現在のサイズと位置で表示します。 |
6 | 指定したウィンドウを最小化し、Z オーダー上で次に上位となるウィンドウを アクティブにします。 |
7 | ウィンドウを最小化ウィンドウとして表示します。 アクティブなウィンドウは切り替わりません。 |
8 | ウィンドウを現在の状態で表示します。アクティブなウィンドウは切り替わりません。 |
9 | ウィンドウをアクティブにして表示します。 ウィンドウが最小化または最大化されている場合は、元のサイズと位置に戻ります。 アプリケーションで最小化ウィンドウを復元するときには、このフラグを指定してください。 |
10 | アプリケーションを起動したプログラムの状態に基づいて、表示状態を設定します。 |
2. サンプルコード
基本的に第一引数にexeのパスを入れさえすれば、実行できる
function sample () {
var shell = new ActiveXObject('WSctipt.Shell');
shell.Run('C:\\Windows\\System32\\notepad.exe');
}
自作のexe sample.exe
に引数 salad
と0
をつけて実行
ウィンドウは非表示でexeの終了を待つパターン
function sample () {
var shell = new ActiveXObject('WSctipt.Shell');
shell.Run('/sample.exe salad 0', 0, true);
}
3. まとめ
WScript.Shell
オブジェクトのRunメソッドを使えば、exeファイルの実行はもちろん、引数の指定や実行終了の待機まで可能になります。これらの機能を使いこなすことで、デスクトップアプリケーション開発の幅が大きく広がります。
ただし、この強力な機能には注意も必要です。セキュリティ面でのリスクを忘れずに、慎重に使っていくことが大切です。特に気をつけたいのは、信頼できない場所から入手したexeファイルの実行や、ユーザーに無断でexeファイルを実行することです。こういった行為は、プライバシーの侵害やマルウェア感染につながる可能性があります。
参考

Run メソッド