如何使用带最小化主窗口的CreateProcess启动控制台应用程序

我有一个本地的c + + Windows应用程序启动两个subprocess使用下面的代码 –

if (!CreateProcess(NULL, // No module name (use command line) cmdLine, // szCmdline, // Command line NULL, // Process handle not inheritable NULL, // Thread handle not inheritable false, // Set handle inheritance to FALSE CREATE_DEFAULT_ERROR_MODE | NORMAL_PRIORITY_CLASS // Process Create Flags NULL, // Use parent's environment block NULL, // workingDir, // Use parent's starting directory &si, // Pointer to STARTUPINFO structure &pi) // Pointer to PROCESS_INFORMATION structure 

STARTUPINFO块0中的所有参数。此代码在启动进程中工作正常。 但是,我需要能够启动windows c ++控制台应用程序与他们的Windows最小化。

如果我将CREATE_NO_WINDOW添加到进程创build标志,我可以启动没有任何窗口的进程。 这将是不可接受的。

在我的研究中,似乎没有一种方式使控制台应用程序以最小化模式打开。 它是否正确?

是的,我知道我可以从他们自己的stream程中最小化子应用程序窗口,但团队中的其他程序员宁愿不这样做。

您需要在STARTUPINFO结构中指定您希望您的控制台窗口初始最小化:

 ZeroMemory(&si); si.cb = sizeof(STARTUPINFO); si.dwFlags = STARTF_USESHOWWINDOW; si.wShowWindow = SW_MINIMIZE;