从C ++(特别是netstat)获取CMD行程序的输出

时间:2010-03-03 12:22:25

标签: c++ windows-ce netstat

我希望能够运行“netstat -n”并以某种方式获取输出,然后我可以将其写入另一个文件。

如何在Windows CE上的C ++中执行此操作

三江源

克里斯

3 个答案:

答案 0 :(得分:3)

您必须调用CreateProcess并覆盖进程的输出句柄:

STARTUPINFO aInfo;
...
aINfo.hStdOutput = myHandle;
CreateProcess(..., &aInfo, ...);

答案 1 :(得分:0)

http://msdn.microsoft.com/en-us/library/ms682499%28VS.85%29.aspx

但不确定它是否可以在CE

下工作

答案 2 :(得分:0)

我通过从cmd提示符中调用netstat,将输出管道传输到文件,然后从那里使用它来解决这个问题。我相信Kerido的答案是正确的,但这就是我的工作方式。

此代码然后启动cmd.exe并告诉它运行netstat -n。请注意,/ c是必需的,否则cmd.exe将无法启动代码

int retVal = CreateProcessW(L"cmd.exe", L"/c netstat -n > \"/netstatoutput.txt\"", NULL, NULL, NULL, CREATE_NEW_CONSOLE, NULL, NULL, NULL, NULL);