pikador CreateProcess с невидимым окном? Код (Text): ... STARTUPINFO si; PROCESS_INFORMATION pi; ZeroMemory(&si, sizeof(si)); ZeroMemory(&pi, sizeof(pi)); si.cb = sizeof(si); si.dwFlags = STARTF_USESHOWWINDOW; si.wShowWindow = SW_HIDE; if (CreateProcess(NULL, lpCmdLine, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi)) { // WaitForSingleObject(pi.hProcess, INFINITE); CloseHandle(pi.hProcess); CloseHandle(pi.hThread); } ...
Partner > А ShellExecute не нравится ? Предпочитаю CreateProcess , потому что: 1) в STARTUPINFO можно настроить не только видимость окна; 2) могу наблюдать за ("контролировать") завершением процесса - WaitForSingleObject.
dendi Imho в данном случае моветон это - твоя придирка к закомментированному коду, основная задача которого, продемонстрировать, что существует возможность наблюдать, за завершением процесса. Целью моего сообщения было показать направление, в котором думать, а не давать готовое решение.
Partner Она позволяет кое-что еще (запуск программ, которые ассоциированны с файлами), но кое что она и не умеет (расширенные флаги создания процесса отстутствуют). Управлять процессом после его создания нельзя.
Я нигде не говорил что ShellExecuteEx может все, что может CreateProcess. Ты привел всего два пункта, по которых ты предпрочитаешь CreateProcess. ShellExecuteEx может все, перечисленное тобой. Ты сомневаешся что она может больше ? Можно ли с помощью CreateProcess : 1. Задать иконку для приложения. 2. Выбрать монитор на котором запускать в системе с несколькими мониторами. 3. Запустить ассоциированое приложение для файла. 4. Ассоциировать хоткей с запущенным приложением. И это еще не все...