Как часто используются ручки процесса - PullRequest
3 голосов
/ 29 ноября 2009

Я отмечаю дескриптор приложения, когда использую функцию оболочки, чтобы открыть его. Затем я использую этот дескриптор, чтобы закрыть приложение позже. Однако пользователь также может сам закрыть это другое приложение. Может ли этот дескриптор затем повторно использоваться окнами, чтобы при его использовании я закрывал другой процесс. Если это возможно, это вероятно?

Ответы [ 2 ]

5 голосов
/ 29 ноября 2009

Нет, вам не нужно об этом беспокоиться. Дескриптор, возвращаемый, скажем, OpenProcess, ShellExecuteEx () или CreateProcess поддерживает объект процесса живым. Вот как можно вызвать GetExitCodeProcess () для получения кода завершения после завершения процесса.

Объект не освобождается, пока последний дескриптор на нем не будет закрыт. В противоположность предыдущему совету, данному в этой теме, очень важно, чтобы вы вызвали CloseHandle (), иначе у вас будет утечка.

3 голосов
/ 29 ноября 2009

Вы можете подождать дескриптор процесса, чтобы выяснить, когда он завершается.

WaitForSingleObject (hProcess, INFINITE);

Как только это вернется, вы знаете, что процесс завершен, и вам не нужно его закрывать.

...