簡體   English   中英

窗口關閉時收到通知(或者它擁有的線程消失)

[英]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_DESTROYWM_NCDESTROY消息,查找您感興趣的特定HWND。請注意,掛鈎必須在掛鈎另一個進程時在DLL中實現,因此您必須使用您選擇的進程間通信機制在HWND被銷毀時通知您的主應用程序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM