得到标准错误和标准输出为字符串ShellExecute函数

问题描述:

我想要得到的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://*.com/questions/5486762/process-output-c-windows) –

@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谢谢你是对的,我会尝试编码你提到的代码或读取文件 –