Run / Exec
どちらもプログラムを実行する点で同じ。そして、実行したプログラムを、AppActivate / SenKeys などで制御できる。
Run 別プロセスで実行(ひっそりと使用する)。表示最小化や終了コードの取得は可能。
Exec 標準入力(StdIn)、標準出力(StdOut)、標準エラー出力(StdErr)を利用できる。
Execが返すWshScriptExecオブジェクトのプロパティ。
Statusプロパティ | 実行したスクリプトのスタータス情報(0か1)。0は実行中、1は完了。 |
StdInプロパティ | WshScriptExecの入力ストリーム。 |
StdOutプロパティ | WshScriptExecの書き込み専用出力ストリーム。 |
StdErrプロパティ | |
ExitCodeプロパティ | 終了コードを返す。 |
ProcessIDプロパティ | AppActivateメソッドで利用する。 |
※StdIn, StdOut, StdErrの3つはTextStreamオブジェクトである。 |
Execの使用例
Set objShell = WScript.CreateObject( "WScript.Shell" )
Set objExec = objShell.Exec( "(プログラム名を入れる)" )
Do While objExec.Status = 0
WScript.Sleep 100
Loop
objExec.StdOut =
objExec.ExitCode =
WScript.Echo "・・・"
Execの使用例2: ipアドレスを表示する
Set objShell = WScript.CreateObject( "WScript.Shell" )
Set objExec = objShell.Exec( "ipconfig.exe" )
Do Until objExec.StdOut.AtEndOfStream
strLine = objExec.StdOut.ReadLine
IF InStr( strLine, "IP Address") <> 0 Then
iColon = InStr(strLine, ":")
strAddress = Mid( strLine, iColon+2 )
WScript.Echo StrAddress
End IF
Loop