SetWindowsHookEx(WH_SHELL, ...): 事件HSHELL_WINDOWREPLACED是什么意思?
SetWindowsHookEx(WH_SHELL, ...): What is the meaning of event HSHELL_WINDOWREPLACED?
如果我通过SetWindowsHookEx(WH_SHELL, ShellProc, ...)
注册一个钩子,事件HSHELL_WINDOWREPLACED
是什么意思? (我的 Google-fu 失败了。我搜索了高低!)
Win32 文档:
SetWindowsHookEx()
: https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-setwindowshookexw
ShellProc
(回调):https://docs.microsoft.com/en-us/windows/win32/winmsg/shellproc
官方文档阅读:A top-level window is being replaced.
奇怪的是,他们还说:Windows 2000: Not supported.
这是否意味着只支持before或afterWin2K?
我创建了一个测试驱动程序来观看 Microsoft Windows 会话,但我始终无法触发这个神秘事件。
我在这里也发现了类似的事件:
RegisterShellHookWindow
: https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-registershellhookwindow
...也就是说:
HSHELL_WINDOWREPLACING: A handle to the window replacing the top-level window.
HSHELL_WINDOWREPLACED: A handle to the window being replaced.
相关:
- How can I be notified when a new window is created on Win32?
- Why HSHELL_WINDOWDESTROYED, HSHELL_WINDOWCREATED?
在这种情况下,术语“替换”指的是 window 停止响应消息(“挂起”)并且在一段时间后 Windows 隐藏它并且 用faded-out副本(称为“幽灵window”)替换它on-screen。
Windows 这样做是为了即使应用程序未处理消息,用户也可以与 ghost 交互 window 来移动它并尝试关闭它。
wParam
值是hungwindow(被替换的那个)的句柄,lParam
值是ghostwindow(它的)的句柄替换)。
如果 window 再次开始响应,将再次发送通知,并交换 window 句柄。
如果我通过SetWindowsHookEx(WH_SHELL, ShellProc, ...)
注册一个钩子,事件HSHELL_WINDOWREPLACED
是什么意思? (我的 Google-fu 失败了。我搜索了高低!)
Win32 文档:
SetWindowsHookEx()
: https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-setwindowshookexwShellProc
(回调):https://docs.microsoft.com/en-us/windows/win32/winmsg/shellproc
官方文档阅读:A top-level window is being replaced.
奇怪的是,他们还说:Windows 2000: Not supported.
这是否意味着只支持before或afterWin2K?
我创建了一个测试驱动程序来观看 Microsoft Windows 会话,但我始终无法触发这个神秘事件。
我在这里也发现了类似的事件:
RegisterShellHookWindow
: https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-registershellhookwindow
...也就是说:
HSHELL_WINDOWREPLACING: A handle to the window replacing the top-level window.
HSHELL_WINDOWREPLACED: A handle to the window being replaced.
相关:
- How can I be notified when a new window is created on Win32?
- Why HSHELL_WINDOWDESTROYED, HSHELL_WINDOWCREATED?
在这种情况下,术语“替换”指的是 window 停止响应消息(“挂起”)并且在一段时间后 Windows 隐藏它并且 用faded-out副本(称为“幽灵window”)替换它on-screen。
Windows 这样做是为了即使应用程序未处理消息,用户也可以与 ghost 交互 window 来移动它并尝试关闭它。
wParam
值是hungwindow(被替换的那个)的句柄,lParam
值是ghostwindow(它的)的句柄替换)。
如果 window 再次开始响应,将再次发送通知,并交换 window 句柄。