[英]Get notified when a Window closes (or it's owning thread disappears)
我有一個hwnd,我的進程不擁有,我想在它消失時收到通知,以便我的代碼可以執行清理操作。 最好的方法是什么?
要檢測HWND的擁有進程何時消失,您可以從GetWindowThreadProcessId()
獲取HWND的進程ID,然后使用OpenProcess()
獲取進程的HANDLE
,然后使用WaitForSingleObject()
或其他相關的等待函數。 進程退出時,將發出進程句柄信號。
要檢測HWND何時消失,從GetWindowThreadProcessId()
獲取HWND的線程ID,然后使用SetWindowsHookEx()
掛鈎該線程的消息隊列,以便您可以攔截屬於該線程的所有HWND的WM_DESTROY
和WM_NCDESTROY
消息,查找您感興趣的特定HWND。請注意,掛鈎必須在掛鈎另一個進程時在DLL中實現,因此您必須使用您選擇的進程間通信機制在HWND被銷毀時通知您的主應用程序。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.