VC++中隐藏cmd窗口

来源:百度知道 编辑:UC知道 时间:2024/06/20 09:48:22
我在VC程序中写了个system("命令行");
但是在运行的时候会弹出个CMD窗口,请问怎么将其隐藏?

貌似不能。就好像.bat文件一样。
但窗口模式的程序可以隐藏。

因为system函数会执行目标程序,即独立于原程序

如果目标程序是Console的,那么操作系统会创建相应的Console窗口

如果一定要隐藏该窗口,提示一个参考建议:
使用CreateProcess直接创建进程
通过管道将目标程序的标准输入输出重定向

就可以达到隐藏Console窗口的目的

这个样子是可以的,用WinExec("命令行",SW_HIDE);已经实验成功
这个命令行可以写在bat里面,然后用WinExec("**.bat",SW_HIDE)执行bat就行,同时能隐藏CMD窗口。

用CreateProcess来运行cmd窗口 是一个好的方法,给dwCreationFlags参数传递CREATE_NO_WINDOW可以隐藏cmd窗口。

用这种方法创建出来的cmd窗口进程最大的好处就是可以用WaitForSingleObject来对进程的执行过程进行严格的控制。

这点上WinExc和System等都无法达到要求。