Я использую CreateProcess() с флагами запуска, установленными в STARTF_USESHOWWINDOW и SW_HIDE, чтобы запустить приложение в фоновом режиме, скрыв его окно. Я делаю это для выполнения запланированных задач обслуживания, и я не хочу, чтобы меня беспокоили окна.Создание скрытых процессов (окно не видно)
В большинстве случаев окна скрыты, но есть случаи, когда окно программы появляется прямо перед вами (например, Chrome от Google - я начал тестировать различные приложения, чтобы увидеть, была ли это проблемой времени, но нет. ..).
Это случается меньше в Windows XP, но это случается очень много на Vista.
Есть ли флаг, который мне не хватает? Есть ли другой способ создать процесс с его скрытым окном?
Спасибо!
мой пример кода:
char *ProgramName
STARTUPINFO StartupInfoF;
PROCESS_INFORMATION ProcessInfoF;
memset(&StartupInfoF, 0, sizeof(StartupInfoF));
memset(&ProcessInfoF, 0, sizeof(ProcessInfoF));
StartupInfoF.cb = sizeof(StartupInfoF);
StartupInfoF.wShowWindow = SW_HIDE;
StartupInfoF.dwFlags = STARTF_USESHOWWINDOW;
if (CreateProcess(ProgramName,
"",
0,
0,
FALSE,
DETACHED_PROCESS,
0,
0,
&StartupInfoF,
&ProcessInfoF) == FALSE)
{
// error
}
else
{
// OK
}
нормально, это похоже на работу, однако я получаю сообщение об ошибке, и после поиска в MSDN он говорит, что мне не нужно иметь привилегии DESKTOP_CREATEWINDOW. Вы знаете, как изменить привилегии моего процесса и добавить DESKTOP_CREATEWINDOW? – wonderer
Хорошо, я все понял. createdesktop был ответом. благодаря! – wonderer