[英]Hiding command prompt while starting a process in C++
我必须从我的C ++代码开始一个过程。 我正在使用CreateProcess()函数,我在startupinfo结构中设置了以下标志。 但仍然显示命令提示符,我必须手动关闭以继续。 请告诉我如何在启动过程中隐藏此命令提示符。
si.cb = sizeof(STARTUPINFO);
si.dwFlags = STARTF_USESHOWWINDOW;
si.wShowWindow = SW_HIDE;
create process调用如下所示:
CreateProcess( NULL, // No module name (use command line)
exe, // Command line
NULL, // Process handle not inheritable
NULL, // Thread handle not inheritable
FALSE, // Set handle inheritance to FALSE
CREATE_NEW_CONSOLE, // No creation flags
NULL, // Use parent's environment block
NULL, // Use parent's starting directory
&si, // Pointer to STARTUPINFO structure
&pi );
exe是一个包含要启动的进程名称的字符串。
请告诉我如何在启动过程中隐藏此命令提示符。 我尝试了这里描述的方法,但它不起作用。 我有一个Windows 7系统。
谢谢,拉克什。
您正在传递CREATE_NEW_CONSOLE
而您不需要新的控制台窗口。 似乎答案是完全明显的。 但是,如果其他进程本身创建了一个控制台,那么你就无法阻止它。 如果您通过Explorer启动该过程会发生什么?
正如MSalters所说, CREATE_NEW_CONSOLE
不是你想要的。 但是您可能还想将CREATE_NO_WINDOW
传递给CreateProcess
函数。 有关可以作为标志传递给CreateProcess
,请参阅MSDN文档 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.