gpt4 book ai didi

windows - Windows 的 "Safely Remove Hardware"对话框如何获取 "foreground love"?

转载 作者:可可西里 更新时间:2023-11-01 12:42:07 25 4
gpt4 key购买 nike

Raymond has blogged about程序如何通过使用 RegisterHotkey 获取/窃取“前景之爱”,调用时会将前景转移到您的应用程序。

手动执行此操作的尝试悲惨地失败了(例如,使用 SetForegroundWindowSwitchToWindow 等),因为应用程序不能窃取用户的焦点(因此按键不会去错地方)。

问题是,今天我发现了一些奇怪的事情:

  1. 我尝试安全移除外部驱动器。

  2. 有大约 7 秒的停顿。

  3. 在暂停期间,我在窗口内用力打字。

  4. 突然,一个消息框窃取了我的应用程序的前景,我的输入改为进入了消息框。

显然,这没有使用热键机制——然而,Windows 能够从我的应用程序中窃取焦点。

我真的怀疑是否有任何类似“后门”的东西被用于这个特定目的(尽管如果我错了请纠正我),所以,假设不是这种情况,一定有办法正确执行此操作,使用热键机制。

那么问题来了,这是如何实现的呢?

备注:

Hans 注意到“后门”是 AttachInputThread,但我不太相信这就是这里发生的事情——尤其是自 Raymond says that method can cause hangs 以来.想法?

最佳答案

我做了一些实验,据我所知,当且仅当新窗口属于 Windows 资源管理器时,才会发生这种情况。例如,某些控制面板在 Explorer 中实现或作为 Explorer 插件实现。我可以通过从开始菜单打开操作中心来最轻松地重现它(开始菜单配置为在菜单中显示控制面板项)。

然后,我怀疑此行为是 Windows 资源管理器拥有桌面窗口这一事实的结果,GUI 将其视为一种特殊情况。

唯一有点奇怪的是,我无法用您正在谈论的 USB 对话框重现此行为,它(当我尝试时)是由一个单独的进程(一个实例rundll32.exe)。不过,这可能取决于其他因素。

关于windows - Windows 的 "Safely Remove Hardware"对话框如何获取 "foreground love"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10715550/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com