Как запустить консольное приложение с помощью CreateProcess с главным окном Minimized - PullRequest
5 голосов
/ 07 декабря 2010

У меня есть собственное приложение Windows c ++, которое запускает два дочерних процесса, используя следующий код -

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 ++ с их свернутыми окнами.

Если я добавлю CREATE_NO_WINDOW к флагам создания процессов, я смогу запускать процессы без окон.Это будет недопустимо.

В моем исследовании не было способа заставить консольное приложение открываться в свернутом режиме.Это правильно?

Да, я знаю, что могу свести к минимуму окна дочерних приложений из своего собственного процесса, однако другие программисты в команде предпочитают этого не делать.

1 Ответ

7 голосов
/ 07 декабря 2010

Вам необходимо указать в структуре STARTUPINFO , что вы хотите, чтобы окно консоли было изначально свернуто:

ZeroMemory(&si);
si.cb = sizeof(STARTUPINFO);
si.dwFlags = STARTF_USESHOWWINDOW;
si.wShowWindow = SW_MINIMIZE;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...