Чтобы получить код выхода основного потока процесса - нужно получить его HANDLE
. К сожалению, ShellExecuteEx
не возвращает вам это (он возвращает только HANDLE
только что созданного процесса).
Можно также перечислить все потоки в определенном процессе и открыть их дескрипторы (OpenThread
). Таким образом, вы можете создать процесс в «приостановленном» состоянии, получить дескриптор его единственного потока (который еще не начал выполнение) и затем продолжить.
Увы, ShellExecuteEx
также не позволяет создавать новый процесс в приостановленном состоянии.
Так что я не вижу чистого способа достичь того, чего вы хотите. Я бы предложил следующее:
- Зачем вам вообще нужен код выхода основного потока? Возможно, кода выхода процесса будет достаточно?
- Рассмотрите возможность использования
CreateProcess
. Имеет необходимый функционал.
- Могут помочь некоторые грязные уловки, такие как внедрение DLL во вновь созданный процесс (перехват) и т. Д.