문제

쉘 기능을 사용하여 열 때 응용 프로그램 핸들에 유의합니다. 그런 다음 해당 핸들을 사용하여 나중에 응용 프로그램을 닫습니다. 그러나 사용자는 다른 응용 프로그램을 직접 닫을 수 있습니다. 그런 다음 해당 핸들을 Windows로 재사용하여 해당 핸들을 사용할 때 다른 프로세스를 닫습니다. 가능하다면 가능성이 있습니까?

도움이 되었습니까?

해결책

아니요, 걱정할 필요가 없습니다. 핸들은 OpenProcess, ShellexEcuteex () 또는 CreateProcess에 의해 반환되면 프로세스 객체를 살리게합니다. 이것이 프로세스가 종료 된 후 출구 코드를 검색하기 위해 getExitcodeProcess ()를 호출 할 수있는 방법입니다.

마지막 핸들이 닫힐 때까지 객체가 해제되지 않습니다. 이 스레드에서 주어진 이전 조언과는 반대로 CloseHandle ()을 호출하거나 누출이 발생하는 것이 매우 중요합니다.

다른 팁

프로세스 핸들을 기다리면 종료시기를 파악할 수 있습니다.

WaitforsingleObject (HProcess, Infinite);

이것이 반환되면, 당신은 프로세스가 종료되었다는 것을 알고 당신은 그것을 닫을 필요가 없습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top