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 文档:

官方文档阅读:A top-level window is being replaced.奇怪的是,他们还说:Windows 2000: Not supported.这是否意味着只支持beforeafterWin2K?

我创建了一个测试驱动程序来观看 Microsoft Windows 会话,但我始终无法触发这个神秘事件。

我在这里也发现了类似的事件:

...也就是说:

相关:

在这种情况下,术语“替换”指的是 window 停止响应消息(“挂起”)并且在一段时间后 Windows 隐藏它并且 用faded-out副本(称为“幽灵window”)替换它on-screen。

Windows 这样做是为了即使应用程序未处理消息,用户也可以与 ghost 交互 window 来移动它并尝试关闭它。

wParam值是hungwindow(被替换的那个)的句柄,lParam值是ghostwindow(它的)的句柄替换)。

如果 window 再次开始响应,将再次发送通知,并交换 window 句柄。