« コンソールアプリを非表示で実行するラッパーをVB.NETで作る。 | トップページ | コンソールアプリを非表示で実行するラッパーをVB.NETで作る。(その3) »

2008年8月26日 (火)

コンソールアプリを非表示で実行するラッパーをVB.NETで作る。(その2)

このラッパーをWScript.ShellのExec()で使うには、

Set oExec=wShell.Exec("コンソールアプリ [引数...]")

の代わりに、

Set oExec=wShell.Exec("HideExec.exe コンソールアプリ [引数...]")

とします。

使用例(1)

Set wShell=CreateObject("WScript.Shell")
Set oExec=wShell.Exec("HideExec.exe more.com")
oExec.StdIn.WriteLine "aaa"
oExec.StdIn.WriteLine "bbb"
oExec.StdIn.Close
MsgBox oExec.StdOut.ReadAll,,"StdOut"
MsgBox oExec.StdErr.ReadAll,,"StdErr"

Exec()のStdOutやStdErrは、ノンブロッキングReadができないので、StdOutとStdErrのどちらに出るか予測できない会話はできません。
もし、StdOutとStdErrのどちらに出るか予見可能なら、会話も可能です。

使用例(2)

Set wShell=CreateObject("WScript.Shell")
Set oExec=wShell.Exec("HideExec.exe fc")
MsgBox oExec.StdOut.ReadAll,,"StdOut"
MsgBox oExec.StdErr.ReadAll,,"StdErr"

« コンソールアプリを非表示で実行するラッパーをVB.NETで作る。 | トップページ | コンソールアプリを非表示で実行するラッパーをVB.NETで作る。(その3) »