繁体   English   中英

在C ++中启动进程时隐藏命令提示符

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM