2013-09-29 90 views
0

我正在寫一個GUI應用程序來包裝wmic.exe,使用c + +/win32api。 打電話來時:使用管道輸出重定向wmic.exe

CreateProcess(.., "wmic.exe" , ..) 我送把手給我心中已經打開了這個目的,從我將在後面讀取輸出(並寫入輸入)輸入和輸出管道。

相同的代碼適用於我檢查過的任何其他Windows命令行實用程序(net.exe,tree.exe等),但它不適用於wmic.exe的情況。 我注意到wmic.exe使用了Console系列的一些功能(http://msdn.microsoft.com/en-us/library/windows/desktop/ms686033(v=vs.85).aspx),所以我懷疑它可能是原因,但我真的不知道里面發生了什麼。

回答

0

它應該工作。您可以嘗試使用管道在cmd調用wmic

echo CPU | wmic >test.log

和它的作品我的64位Windows 8的計算機上。

+0

但它沒有。正如我所說的,當只有在'CreateProcess()'上運行的映像從'wmic.exe'改爲'net.exe','cmd.exe'等時,完全相同的代碼才能工作。 –

+0

@EdgarJamesluffternstat OK ...然後它是一個系統相關的問題,不幸的是它似乎不是那麼容易解決...... – Chen

+0

到目前爲止檢查XP32sp1/2/3,win7-64bit,win7-64bit-over-WOW64,windows8-64bit。不管怎麼說,還是要謝謝你。 –