2016-08-21 62 views
-1

我想要得到的stderrstdout從以做一些代碼在某些stderrstdout案件得到標準錯誤和標準輸出爲字符串ShellExecute函數

case WM_CREATE: 
      ShellExecute(0, 
         "open", 
         "cmd.exe", 
         "/C ipconfig > x", 
         0, SW_HIDE); 
break; 

說出來辯解在控制檯命令爲x串結果爲x文件也我認爲它不記錄stderr,因爲它使x文件空白,以反映adb命令

+1

它需要一個公平一點更多的代碼比你出什麼更簡單。 :-)請參閱此處的示例:[使用重定向的輸入和輸出創建子進程](https://msdn.microsoft.com/en-us/library/windows/desktop/ms682499.aspx) –

+1

可能的重複[處理輸出c Windows](http://stackoverflow.com/questions/5486762/process-output-c-windows) –

回答

0

@CodyGray,謝謝你試圖幫助,我發現解決方案是隻添加「2> & 1 「這將會產生像這樣的stderr和stdout

ShellExecute(0, 
         "open", 
         "cmd.exe", 
         "/C ipconfig > buffer.txt 2>&1", 
         0, SW_HIDE); 

的解決方案比你所提到的情況只需要找出如何將其重定向到字符串

+1

好吧,如果真的那麼簡單,沒有人會浪費時間編寫所有代碼。當然,'2>&1'魔術可以將stderr(文件描述符2)重定向到標準輸出(文件描述符1),但是您不要過分簡化問題。沒有「只是」將它重定向到一個字符串。您必須自己將stdout句柄中的數據讀取到字符串中。 –

+0

@CodyGray謝謝你是對的,我會嘗試編碼你提到的代碼或讀取文件 –

相關問題