winapi - Windows 资源管理器不接收 WM_DESTROY。如何检测用户何时关闭资源管理器窗口?

标签 winapi hook windows-explorer setwindowshookex

我正在编写一个程序,需要检测窗口何时关闭。目前我正在使用 SetWindowsHookEx 注册一个可以监 window 口消息的钩子(Hook)。

我正在监视 WM_DESTROY 事件以查明窗口何时被销毁。这对于大多数窗口都适用,但 Windows 资源管理器是一个明显的异常(exception)。 Windows 资源管理器在终止时似乎没有接收到 WM_DESTROY 事件(但接收到大多数其他有趣的事件)。

Windows 资源管理器未收到 WM_DESTROY 是否有原因?

更重要的是,除了监听 WM_DESTROY 之外,是否还有其他方法可以用来检测 Windows 资源管理器何时终止?

谢谢!

我使用的是 Windows 7(不确定此信息的相关性)

最佳答案

使用 WH_CBT钩子(Hook)而不是消息钩子(Hook),并让它处理 HCBT_DESTROYWND 通知。

关于winapi - Windows 资源管理器不接收 WM_DESTROY。如何检测用户何时关闭资源管理器窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16868142/

相关文章:

windows - 如何在内核模式 Hook 中获取调用者 SID? ( Windows )

java - JNativeHook 来自同一操作的多个响应(鼠标单击、按键类型和鼠标滚动)

c++ - 如何使用 SendInput 重复击键?

c - 错误 C2065 : 'Test_Proc' : undeclared identifier which 'Test_Proc' already exists

c++ - #ifdef WIN32DLL_EXPORTS 是什么意思?

excel - 如果您在 Windows 资源管理器中右键单击并使用 Excel 打开,如何在 Excel 中打开 txt 文件?

windows - 如何删除 yeoman 在 Windows 中创建的文件夹?

python - 在 Windows 资源管理器中拖放到 Python 脚本

c++ - 正确的做法是 DialogBox 还是 CreateWindow

c++ - 使用 WinAPI/C++ 在 Windows 上的进程之间实现多读取器、单写入器同步锁定