셸 함수를 사용하여 열 때 응용 프로그램 핸들에 유의하십시오. 그런 다음 해당 핸들을 사용하여 나중에 응용 프로그램을 닫습니다. 그러나 사용자는 다른 응용 프로그램을 직접 닫을 수도 있습니다. 그 핸들을 창에 의해 재사용 할 수있어서 그 핸들을 사용할 때 다른 프로세스를 닫을 수 있습니다. 가능성이 있다면 가능합니까?윈도우 핸들 재사용 빈도
답변
아니요, 걱정할 필요가 없습니다. OpenProcess, ShellExecuteEx() 또는 CreateProcess에 의해 반환 된 핸들은 프로세스 객체를 활성 상태로 유지합니다. 프로세스가 종료 된 후에 GetExitCodeProcess()를 호출하여 종료 코드를 검색하는 것이 가능합니다.
개체는 마지막 핸들이 닫힐 때까지 해제되지 않습니다. 이 스레드에서 제공된 이전 조언과는 반대로 CloseHandle()을 호출하거나 누수가 발생하는 것이 매우 중요합니다.
프로세스 핸들이 종료 될 때까지 기다릴 수 있습니다.
WaitForSingleObject (hProcess, INFINITE);
이 정보가 반환되면 프로세스가 종료되었으며 프로세스를 종료 할 필요가 없다는 것을 알았습니다.
아니요. 누출을 방지하려면 CloseHandle()을 호출해야합니다. –
고마워요.하지만 쉘 명령을 수행 한 응용 프로그램이 닫을 때까지 열려 있기 때문에 핸들이 다시 사용되지 않는 것 같습니다. – jjb
- 1. JPanel에 HWND (윈도우 핸들) 삽입하기
- 2. 응용 프로그램의 윈도우 핸들 얻기
- 3. GTK 노트에서 탭으로 윈도우 재사용
- 4. 마우스 버튼을 클릭 한 윈도우 핸들 얻기
- 5. 삽입 빈도
- 6. 창 핸들 핸들 (c)
- 7. SAS의 분수 빈도 계산
- 8. 정수의 계수 빈도 합치기
- 9. 단어 빈도 추적/계산
- 10. 주문 결과 발생 빈도
- 11. 프로그래밍 언어의 기호 빈도
- 12. 편지 빈도 자바
- 13. 용어 빈도 계산
- 14. 이벤트 빈도 계산
- 15. XQuery에서 발생 빈도 결정
- 16. 프로그래밍 진주의 단어 빈도
- 17. 파이썬에서 빈도 분포를 표시합니다.
- 18. C의 빈도 막대 그래프
- 19. 태그의 빈도 카운트
- 20. 문자열 빈도 테이블 만들기
- 21. 병합 배열과 단어 빈도
- 22. 다음 역 문서 빈도
- 23. 무작위 값이있는 빈도 테이블
- 24. 루프의 헤더 실행 빈도
- 25. python - 문자 빈도
- 26. 빈도 테이블에있는 사용자가
- 27. MATLAB : 빈도 분포
- 28. Silverlight 핸들 UserControl
- 29. 컨트롤 핸들
- 30. 핸들 클릭은
고마워,하지만 난 따라하지 않아. closehandle()이 호출되지 않아 메모리 누수가 발생합니다. 셸 호출을 수행 한 응용 프로그램이 제대로 닫히면 정리 될까요? – jjb
예, Windows가 닫히지 않은 핸들을 지 웁니다. 그걸 멀리하지 못하게하십시오. –
그냥 sendMessage를 호출하지 마십시오 SendMessage (intHandle, const_CLOSE, 0 &, 0 &)를 호출하십시오. 모두 응용 프로그램을 닫고 closehandle() 작업을 동시에 수행합니까? – jjb