JavaScriptからexeを実行する

この記事では、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に引数 salad0 をつけて実行
ウィンドウは非表示で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 メソッド
タイトルとURLをコピーしました