Life can only be understood backwards; but it must be lived forwards. -Soren Kierkegaard
〓いろんなものの置き場です。〓
純志のページ 更新日   

RunとExecの違い、そしてExecでスクリプトのサンプル


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


PageTop▲

Copyright © 2010 "Junshi Toyoda, Okinawa Japan"