GUIを持つアプリケーションから、コンソールアプリケーションを呼び出す際に、
結果を(途中経過をリアルタイムで)コンソールではなくGUI中のテキストボックス等に
表示させたいのです。
(コンソールは表示させない方向で・・・)
調べてみたところ、「CreateProcess を使用し、STARTUPINFO構造体の
dwFlags と hStdOutput を設定しておく」まではわかったのですが、
いざコードを書いてみると、目的のコンソールアプリケーションは実行されているようですが、
結果を表示させることができませんでした。
コード: 全て選択
Dim CmdLine As String
Dim si As STARTUPINFO
Dim pi As PROCESS_INFORMATION
CmdLine = "cmd.exe /c dir c:\windows\system32"
si.cb = Len(si)
si.dwFlags = STARTF_USESTDHANDLES
si.hStdOutput = GetDlgItem(hMainWnd,EditBox1)
If CreateProcess(0, StrPtr(CmdLine), ByVal 0, ByVal 0, TRUE, DETACHED_PROCESS, 0, 0, si, pi) Then
CloseHandle(pi.hProcess)
CloseHandle(pi.hThread)
End If
どうかお力添えをいただけませんか?よろしくお願いします。