2013-12-19 62 views
0

我有一個應用程序,我想運行另一個基於控制檯的exe文件並讀取該控制檯應用程序的輸出?假設控制檯應用程序是使用printf編寫的第三方exe文件。讀取應用程序的輸出

+2

你可以用'CreateProcess'做到這一點 - 看到http://msdn.microsoft.com/en-us/library/windows/desktop/ms682499 (v = vs.85).aspx – benjymous

+0

目前我正在使用CreateProcess啓動第三方exe,但鏈接說我也在childExe中進行了更改。這意味着在第三方EXE這是不可能的。 – CrazyC

+1

@CrazyC AFAIK,你不需要修改子exe文件。它在哪裏說呢? (示例中的管道通信位是針對特定示例的 - 「printf」也應顯示在父級中。) – molbdnilo

回答

0

使用CreateProcess()來運行控制檯應用程序,然後您可以使用STARTUPINFO結構來指定控制檯使用自己的STDIN/OUT/ERR句柄。通過CreatePipe()爲此創建匿名管道,然後根據需要使用ReadFile()WriteFile()讀取/寫入管道。

有MSDN上的例子:

Creating a Child Process with Redirected Input and Output

相關問題