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

发布于 2024-08-23 19:11:51 字数 114 浏览 4 评论 0原文

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

我如何在 Windows CE 上用 C++ 执行此操作

谢谢

Chris

I want to be able to run "netstat -n" and grab the output somehow so I can then write it out to another file.

How can I do this in C++ on Windows CE

Thankyou

Chris

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

埋情葬爱 2024-08-30 19:11:51

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

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

You must call CreateProcess and override the process's output handle:

STARTUPINFO aInfo;
...
aINfo.hStdOutput = myHandle;
CreateProcess(..., &aInfo, ...);
天荒地未老 2024-08-30 19:11:51

我通过从 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);

I solved this by essentially calling netstat from the cmd prompt, piping the output to a file, and then using it from there. I believe Kerido's answer to be right but this is how I got it working.

This code then launches cmd.exe and telling it to run netstat -n. Note that the /c is required else cmd.exe will not launch the code

int retVal = CreateProcessW(L"cmd.exe", L"/c netstat -n > \"/netstatoutput.txt\"", NULL, NULL, NULL, CREATE_NEW_CONSOLE, NULL, NULL, NULL, NULL);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文