我必须从我的C ++代码开始一个过程。我正在使用CreateProcess()函数,我在startupinfo结构中设置了以下标志。但仍然显示命令提示符,我必须手动关闭以继续。请告诉我如何在启动过程中隐藏此命令提示符。
si.cb = sizeof(STARTUPINFO);
si.dwFlags = STARTF_USESHOWWINDOW;
si.wShowWindow = SW_HIDE;
创建流程调用如下所示:
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是一个包含要开始的进程名称的字符串。
请告诉我如何在启动过程中隐藏此命令提示符。 我尝试了here描述的方法,但它不起作用。我有一个Windows 7系统。
谢谢, 勒凯什。
答案 0 :(得分:1)
您正在传递CREATE_NEW_CONSOLE
并且您不想要新的控制台窗口。似乎答案是完全明显的。但是,如果其他进程本身创建了一个控制台,那么你就无法阻止它。如果您通过资源管理器启动该过程会发生什么?
答案 1 :(得分:1)
正如MSalters所说,CREATE_NEW_CONSOLE
不是你想要的。但您可能还想将CREATE_NO_WINDOW
传递给CreateProcess
函数。有关您可以传递给CreateProcess
的标志,请参阅MSDN documentation。