Как GetExitCodeProcess получить код завершения, когда процесса больше нет
Сначала я получаю управление процессом с помощью OpenProcess. Затем я вызываю GetExitCodeProcess в цикле, чтобы посмотреть, запущен ли процесс. Но как GetExitCodeProcess получает код выхода? Сохраняет ли Windows код завершения всех процессов, которые выполнялись за последние 30 минут или что-то в этом роде? Как только приложение закрывается, любая информация о процессе стирается из Windows. Я не знаю, как GetExitCodeProcess может получить код выхода чего-то, что больше не существует...
2 ответа
Код выхода сохраняется в объекте процесса, который уничтожается при закрытии последнего дескриптора. Так что не закрывайте ручку, пока не закончите!
Я думаю, что Windows удерживает код завершения процесса, пока все дескрипторы процесса не будут закрыты. OpenProcess
Документация гласит:
Эта функция возвращает дескриптор существующего объекта процесса. Когда вы закончите с ручкой, закройте ее, используя
CloseHandle
функция.