Winapi 如何通过窗口句柄监视窗口的关闭事件?
我有一个在windows资源管理器上检索当前fore窗口句柄的方法。我希望在该窗口关闭时或窗口关闭之前触发一个方法/过程。此作业有哪些可用的windows API?(如有的话) 代码示例将不胜感激。 谢谢你检查一下这个。您应该钩住shell以拦截windows事件。请查看Winapi 如何通过窗口句柄监视窗口的关闭事件?,winapi,hwnd,windows-api-code-pack,Winapi,Hwnd,Windows Api Code Pack,我有一个在windows资源管理器上检索当前fore窗口句柄的方法。我希望在该窗口关闭时或窗口关闭之前触发一个方法/过程。此作业有哪些可用的windows API?(如有的话) 代码示例将不胜感激。 谢谢你检查一下这个。您应该钩住shell以拦截windows事件。请查看SetWinEventHook()或setWindowshookx()。您可以使用GetWindowThreadProcessId()获取要传递给它们的窗口线程和进程ID。SetWindowsHookEx()可以设置WH\u C
SetWinEventHook()
或setWindowshookx()
。您可以使用GetWindowThreadProcessId()
获取要传递给它们的窗口线程和进程ID。SetWindowsHookEx()
可以设置WH\u CBT
钩子来监视HCBT\u SYSCOMMAND
/SC\u CLOSE
事件,但需要一个DLL来钩子另一个进程SetWinEventHook()
不需要DLL,但没有专门用于关闭窗口的事件,因此可以监视event\u OBJECT\u DESTROY
或event\u OBJECT\u STATECHANGE
事件。@thepirat000:“此功能不适用于一般用途。此外,它没有窗口关闭事件,只有窗口销毁事件。与SetWinEventHook()
相同。并非所有窗口在关闭时都会被销毁,因此我认为SetWindowsHookEx()
可能是OP的最佳选择。SetWindowsHookEx()
也可以设置WH\u CALLWNDPROC/RET
钩子来监视WM\u CLOSE
消息。