VBScript Tips:起動したexeの実行結果を取得する [VBscript]
前回は、BATによるexeの実行結果の取得を書きました。
VBScriptならexeがコンソールアプリケーションの場合、画面を非表示にして実行することも可能です。
Runメソッドを利用します。
object.Run(strCommand, [intWindowStyle], [bWaitOnReturn])
object
WshShell オブジェクトです。
strCommand
実行するコマンド ラインを示す文字列値です。
この引数には、実行可能ファイルに渡すべきパラメータをすべて含める必要があります。
intWindowStyle
省略可能です。プログラムのウィンドウの外観を示す整数値です。
すべてのプログラムがこの情報を使用するわけではないので注意してください。
bWaitOnReturn
省略可能です。スクリプト内の次のステートメントに進まずにプログラムの実行が
終了するまでスクリプトを待機させるかどうかを示すブール値です。
bWaitOnReturn に TRUE を指定すると、プログラムの実行が終了するまでスクリプトの
実行は中断され、Run メソッドはアプリケーションから返される任意のエラー コードを
返します。
bWaitOnReturn に FALSE を指定すると、プログラムが開始すると
Run メソッドは即座に復帰して自動的に 0 を返します 。
(これをエラー コードとして解釈しないでください)。
IntWindowStyleの内容
0 ウィンドウを非表示にし、別のウィンドウをアクティブにします。
1 ウィンドウをアクティブにして表示します。
ウィンドウが最小化または最大化されている場合は、元のサイズと位置に戻ります。
アプリケーションでウィンドウを最初に表示するときには、このフラグを指定してください。
2 ウィンドウをアクティブにし、最小化ウィンドウとして表示します。
3 ウィンドウをアクティブにし、最大化ウィンドウとして表示します。
4 ウィンドウを最新のサイズと位置で表示します。
アクティブなウィンドウは切り替わりません。
5 ウィンドウをアクティブにし、現在のサイズと位置で表示します。
6 指定したウィンドウを最小化し、Z オーダー上で次に上位となるウィンドウを
アクティブにします。
7 ウィンドウを最小化ウィンドウとして表示します。
アクティブなウィンドウは切り替わりません。
8 ウィンドウを現在の状態で表示します。アクティブなウィンドウは切り替わりません。
9 ウィンドウをアクティブにして表示します。
ウィンドウが最小化または最大化されている場合は、元のサイズと位置に戻ります。
アプリケーションで最小化ウィンドウを復元するときには、このフラグを指定してください。
10 アプリケーションを起動したプログラムの状態に基づいて、表示状態を設定します。
では、簡単な例を記述します。
以下は、hogehoge.exeを非表示で実行し、実行完了を待ちます。
したがって、Returnには実行結果が入ります。
Dim WshShell
Set WshShell = WScript.CreateObject("WScript.Shell")
Return = WshShell.Run("hogehoge.exe", 0, TRUE)
WScript.Echo Return
Set WshShell = Nothing
第2パラメタを0から1に変えれば、アクティブウィンドウで表示されます。
第3パラメタをTRUEからFALSEに変えた場合には、Returnは常に0となるので、判定してはいけません。
次回をお楽しみに!!
VBScriptならexeがコンソールアプリケーションの場合、画面を非表示にして実行することも可能です。
Runメソッドを利用します。
object.Run(strCommand, [intWindowStyle], [bWaitOnReturn])
object
WshShell オブジェクトです。
strCommand
実行するコマンド ラインを示す文字列値です。
この引数には、実行可能ファイルに渡すべきパラメータをすべて含める必要があります。
intWindowStyle
省略可能です。プログラムのウィンドウの外観を示す整数値です。
すべてのプログラムがこの情報を使用するわけではないので注意してください。
bWaitOnReturn
省略可能です。スクリプト内の次のステートメントに進まずにプログラムの実行が
終了するまでスクリプトを待機させるかどうかを示すブール値です。
bWaitOnReturn に TRUE を指定すると、プログラムの実行が終了するまでスクリプトの
実行は中断され、Run メソッドはアプリケーションから返される任意のエラー コードを
返します。
bWaitOnReturn に FALSE を指定すると、プログラムが開始すると
Run メソッドは即座に復帰して自動的に 0 を返します 。
(これをエラー コードとして解釈しないでください)。
IntWindowStyleの内容
0 ウィンドウを非表示にし、別のウィンドウをアクティブにします。
1 ウィンドウをアクティブにして表示します。
ウィンドウが最小化または最大化されている場合は、元のサイズと位置に戻ります。
アプリケーションでウィンドウを最初に表示するときには、このフラグを指定してください。
2 ウィンドウをアクティブにし、最小化ウィンドウとして表示します。
3 ウィンドウをアクティブにし、最大化ウィンドウとして表示します。
4 ウィンドウを最新のサイズと位置で表示します。
アクティブなウィンドウは切り替わりません。
5 ウィンドウをアクティブにし、現在のサイズと位置で表示します。
6 指定したウィンドウを最小化し、Z オーダー上で次に上位となるウィンドウを
アクティブにします。
7 ウィンドウを最小化ウィンドウとして表示します。
アクティブなウィンドウは切り替わりません。
8 ウィンドウを現在の状態で表示します。アクティブなウィンドウは切り替わりません。
9 ウィンドウをアクティブにして表示します。
ウィンドウが最小化または最大化されている場合は、元のサイズと位置に戻ります。
アプリケーションで最小化ウィンドウを復元するときには、このフラグを指定してください。
10 アプリケーションを起動したプログラムの状態に基づいて、表示状態を設定します。
では、簡単な例を記述します。
以下は、hogehoge.exeを非表示で実行し、実行完了を待ちます。
したがって、Returnには実行結果が入ります。
Dim WshShell
Set WshShell = WScript.CreateObject("WScript.Shell")
Return = WshShell.Run("hogehoge.exe", 0, TRUE)
WScript.Echo Return
Set WshShell = Nothing
第2パラメタを0から1に変えれば、アクティブウィンドウで表示されます。
第3パラメタをTRUEからFALSEに変えた場合には、Returnは常に0となるので、判定してはいけません。
次回をお楽しみに!!