C++ Executing CMD Commands(C++ 执行 CMD 命令)
问题描述
我在这里遇到了一个严重的问题.我需要通过 C++ 执行 CMD 命令行而不显示控制台窗口.因此我不能使用 system(cmd),因为窗口会显示.
I'm having a serious problem here. I need to execute a CMD command line via C++ without the console window displaying. Therefore I cannot use system(cmd), since the window will display.
我已经尝试过 winExec(cmd, SW_HIDE),但这也不起作用.CreateProcess 是我尝试过的另一个.但是,这是用于运行程序或批处理文件.
I have tried winExec(cmd, SW_HIDE), but this does not work either. CreateProcess is another one I tried. However, this is for running programs or batch files.
我最终尝试了 ShellExecute:
ShellExecute( NULL, "open",
"cmd.exe",
"ipconfig > myfile.txt",
"c:projects",
SW_SHOWNORMAL
);
有人能看出上面的代码有什么问题吗?我一直在使用 SW_SHOWNORMAL 直到我知道它有效.
Can anyone see anything wrong with the above code? I have used SW_SHOWNORMAL until I know this works.
我真的需要一些帮助.什么都没有发现,我已经尝试了很长一段时间.任何人都可以提供的任何建议都会很棒:)
I really need some help with this. Nothing has come to light, and I have been trying for quite a while. Any advice anyone could give would be great :)
推荐答案
将输出重定向到您自己的管道是一个更简洁的解决方案,因为它避免了创建输出文件,但这工作正常:
Redirecting the output to your own pipe is a tidier solution because it avoids creating the output file, but this works fine:
ShellExecute(0, "open", "cmd.exe", "/C ipconfig > out.txt", 0, SW_HIDE);
您没有看到 cmd 窗口,并且输出按预期重定向.
You don't see the cmd window and the output is redirected as expected.
您的代码可能失败了(除了 /C 之外),因为您将路径指定为 "c:projects" 而不是 "c:\projects\b".
Your code is probably failing (apart from the /C thing) because you specify the path as "c:projects" rather than "c:\projects\b".
这篇关于C++ 执行 CMD 命令的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:C++ 执行 CMD 命令
基础教程推荐
- 我应该对 C++ 中的成员变量和函数参数使用相同的名称吗? 2021-01-01
- 初始化列表*参数*评估顺序 2021-01-01
- 如果我为无符号变量分配负值会发生什么? 2022-01-01
- 为什么 typeid.name() 使用 GCC 返回奇怪的字符以及如 2022-09-16
- 为什么 RegOpenKeyEx() 在 Vista 64 位上返回错误代码 2021-01-01
- 为什么派生模板类不能访问基模板类的标识符? 2021-01-01
- CString 到 char* 2021-01-01
- 通过引用传递 C++ 迭代器有什么问题? 2022-01-01
- GDB 显示调用堆栈上函数地址的当前编译二进制文 2022-09-05
- 非静态 const 成员,不能使用默认赋值运算符 2022-10-09
