Я запускаю процесс из ShellExecuteEx, и мне действительно нужно получить ProcessID (это часть требований этого класса).
Каким-то образом все важные SHELLEXECUTEINFO
возвращают ноль.
Так, например, если я использую этот код:
exInfo.lpVerb = "open";
exInfo.lpFile = "C:\\Windows\\system32\\cmd.exe";
exInfo.nShow = 5;
ShellExecuteExA(exInfo);
Запустил CMD.exe. Но теперь мне нужно получить его PID.
exInfo.hwnd
возвращает 0
, а exInfo.hProcess
возвращает null
.
Это нормальное поведение?
На самом деле я не хочу прибегать к использованию CreateProcess (), потому что моя функция также должна иметь возможность запускать документы типа "C: \ doc1.docx". Это просто метод, в котором я не могу предсказать, что будет запущено (поэтому я не могу заранее знать заголовок / имя класса окна, получить hWnd оттуда и затем получить PID).
Может ли кто-нибудь любезно указать на мою ошибку? Спасибо.