Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Winapi 如何通过窗口句柄监视窗口的关闭事件?_Winapi_Hwnd_Windows Api Code Pack - Fatal编程技术网

Winapi 如何通过窗口句柄监视窗口的关闭事件?

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

我有一个在windows资源管理器上检索当前fore窗口句柄的方法。我希望在该窗口关闭时或窗口关闭之前触发一个方法/过程。此作业有哪些可用的windows API?(如有的话) 代码示例将不胜感激。 谢谢你检查一下这个。您应该钩住shell以拦截windows事件。请查看
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
消息。