我注意到應用程序句柄,當我使用shell函數打開它時。 然後我使用該句柄稍後關閉應用程序。 但是用戶也可以自己關閉另一個應用程序。 那個句柄可以被窗口重用,這樣當我使用該句柄時,我關閉了一個不同的進程。 如果有可能嗎?窗口句柄多久重用
Q
窗口句柄多久重用
3
A
回答
4
不,你不必擔心它。例如,OpenProcess,ShellExecuteEx()或CreateProcess返回的句柄會保持流程對象的活性。這就是在進程終止後調用GetExitCodeProcess()來檢索退出代碼的方式。
該對象直到關閉它的最後一個句柄纔會被釋放。與此線程提供的早期建議相反,調用CloseHandle()會非常重要,否則您將發生泄漏。
3
您可以等待進程句柄來確定它何時退出。
WaitForSingleObject(hProcess,INFINITE);
一旦這個返回,你知道進程已經退出,你不需要關閉它。
+3
不,請調用CloseHandle()來避免泄漏。 – 2009-11-29 17:21:31
+0
感謝這一點,但似乎該句柄將不會重用,因爲它保持打開,直到執行shell命令的應用程序關閉它。 – jjb 2009-11-29 18:25:30
相關問題
- 1. 窗口句柄和窗口尺寸
- 2. 窗口句柄C#/。NET
- 3. 獲取窗口句柄
- 4. 窗口的主句柄
- 5. 檢索Delphi窗口句柄
- 6. 驗證Win32窗口句柄
- 7. MFC中的窗口句柄?
- 8. Python pyautogui窗口句柄
- 9. 獲取調用窗口的窗口句柄
- 10. 使用窗口句柄製作窗口最頂層
- 11. 獲取窗口的所有句柄
- 12. 從GtkWidget獲取X11窗口句柄
- 13. Getpixel()從外部窗口句柄MFC
- 14. 獲取窗口的句柄在C#
- 15. 找到WPF窗口的句柄
- 16. 獲取PyGI中的窗口句柄
- 17. 獲取主窗口的句柄在WPF
- 18. 錯誤創建窗口句柄
- 19. MFC面板和窗口句柄
- 20. 訪問外部窗口句柄
- 21. 獲取的窗口句柄在Java中
- 22. 將窗口句柄傳遞給變量
- 23. 'System.OutOfMemoryException':創建窗口句柄時出錯
- 24. .net視頻記錄與窗口句柄
- 25. 窗口句柄的絕對路徑
- 26. 什麼時候創建窗口句柄
- 27. 創建窗口句柄時出錯
- 28. 在JPanel中嵌入HWND(窗口句柄)
- 29. FindWindowEx無法找到窗口句柄
- 30. 設置RSACryptoServiceProvider的認證窗口句柄
謝謝,但我不太關注。內存由於closehandle()而泄漏,不會被調用。一旦執行shell調用的應用程序正確關閉,它會被清除嗎? – jjb 2009-11-29 17:44:24
是的,Windows清理未關閉的手柄。不要讓它那麼遠。 – 2009-11-29 18:01:59
不會只是調用sendmessage 調用sendMessage(intHandle,const_CLOSE,0&,0&) 都clse應用程序並執行工作closehandle()在同一時間? – jjb 2009-11-29 18:03:15