Run メソッド
新しいプロセス内でプログラムを実行します。
object
.Run(strCommand, [intWindowStyle], [bWaitOnReturn])
引数
- object
WshShell オブジェクトです。 - strCommand
実行するコマンド ラインを示す文字列値です。この引数には、実行可能ファイルに渡すべきパラメータをすべて含める必要があります。 - intWindowStyle
省略可能です。プログラムのウィンドウの外観を示す整数値です。すべてのプログラムがこの情報を使用するわけではないので注意してください。 - bWaitOnReturn
省略可能です。スクリプト内の次のステートメントに進まずにプログラムの実行が終了するまでスクリプトを待機させるかどうかを示すブール値です。bWaitOnReturn に TRUE を指定すると、プログラムの実行が終了するまでスクリプトの実行は中断され、Run メソッドはアプリケーションから返される任意のエラー コードを返します。bWaitOnReturn に FALSE を指定すると、プログラムが開始すると Run メソッドは即座に復帰して自動的に 0 を返します (これをエラー コードとして解釈しないでください)。
解説
Run メソッドは整数を返します。Run メソッドは新しい Windows プロセス内でプログラムの実行を開始します。スクリプト内の次の処理に進まずにプログラムの実行が終了するまでスクリプトを待機させることができます。これにより、スクリプトとプログラムを同期させて実行できます。引数 strCommand 内の環境変数は自動的に展開されます。ファイルの種類が対応するプログラムに正しく登録されている場合、その種類のファイルを指定して Run メソッドを呼び出すとプログラムが実行されます。たとえば、Word がコンピュータ システム上にインストールされている場合、*.doc ファイルを指定して Run を呼び出すと Word が起動し、指定したドキュメントがロードされます。次の表は、intWindowStyle に設定できる値を一覧したものです。
IntWindowStyle | 内容 |
---|---|
0 | ウィンドウを非表示にし、別のウィンドウをアクティブにします。 |
1 | ウィンドウをアクティブにして表示します。ウィンドウが最小化または最大化されている場合は、元のサイズと位置に戻ります。アプリケーションでウィンドウを最初に表示するときには、このフラグを指定してください。 |
2 | ウィンドウをアクティブにし、最小化ウィンドウとして表示します。 |
3 | ウィンドウをアクティブにし、最大化ウィンドウとして表示します。 |
4 | ウィンドウを最新のサイズと位置で表示します。アクティブなウィンドウは切り替わりません。 |
5 | ウィンドウをアクティブにし、現在のサイズと位置で表示します。 |
6 | 指定したウィンドウを最小化し、Z オーダー上で次に上位となるウィンドウをアクティブにします。 |
7 | ウィンドウを最小化ウィンドウとして表示します。アクティブなウィンドウは切り替わりません。 |
8 | ウィンドウを現在の状態で表示します。アクティブなウィンドウは切り替わりません。 |
9 | ウィンドウをアクティブにして表示します。ウィンドウが最小化または最大化されている場合は、元のサイズと位置に戻ります。アプリケーションで最小化ウィンドウを復元するときには、このフラグを指定してください。 |
10 | アプリケーションを起動したプログラムの状態に基づいて、表示状態を設定します。 |
使用例
次のコードは、Microsoft のメモ帳を実行して実行中のスクリプトを開く例です。
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "%windir%\notepad " & WScript.ScriptFullName
次の VBScript コードも上記と同じ処理を実行する例ですが、ウィンドウの種類を指定し、ユーザーがメモ帳を終了するまで待機し、終了時にメモ帳から返されるエラー コードを保存する点が異なります。
Set WshShell = WScript.CreateObject("WScript.Shell")
Return = WshShell.Run("notepad " & WScript.ScriptFullName, 1, true)
使用例 2
次の VBScript コードは、コマンド ウィンドウを開き、パスを C:\ に変更し、DIR コマンドを実行する例です。
Dim oShell
Set oShell = WScript.CreateObject ("WSCript.shell")
oShell.run "cmd /K CD C:\ & Dir"
Set oShell = Nothing