我正在編寫一個程序,需要檢測何時關閉窗口。目前我使用SetWindowsHookEx來註冊一個可以監視窗口消息的鉤子。Windows資源管理器不會收到WM_DESTROY。如何檢測用戶何時關閉資源管理器窗口?
我正在監視WM_DESTROY事件以查明Windows何時被銷燬。這對於Windows資源管理器是一個顯着的例外是大多數Windows工作正常。 Windows資源管理器在終止時看起來沒有收到WM_DESTROY事件(但收到大多數其他有趣的事件)。
Windows資源管理器沒有收到WM_DESTROY的原因是什麼?
更重要的是,有沒有一種替代方法可以用來檢測Windows資源管理器終止而不是偵聽WM_DESTROY?
謝謝!
我使用Windows 7(不知道這個信息的相關程度)
很難爲這個問題創建一個有建設性的答案。當然,WM_DESTROY *通常會在窗口被銷燬時發送。但窗戶破壞不一定是正常的。例如,當進程終止時,Windows破壞窗口時,不會發送任何消息。關於資源管理器,沒有什麼正常的,18年的appcompat黑客保持流行的shell擴展運行看到這一點。還有Explorer提供的額外特殊選項,即「在自己的進程中運行窗口」選項。大量的東西來密謀讓你的代碼無效。 –
那麼這是否意味着我不能依賴一般的WM_DESTROY消息?我真的不得不採取一些措施,例如定期輪詢EnumWindows並檢查哪些窗口不再存在? – TomPeters