Windows的“安全删除硬件”对话框如何获得“前景之爱”?

Raymond has blogged about如何通过使用RegisterHotkey来获取/窃取“前景之爱”,当被调用时,它将把前景转移到你的应用程序.

手动尝试这样做会失败(例如使用SetForegroundWindow,SwitchToWindow等),因为应用程序不能从用户窃取焦点(以便按键不会出错).

麻烦的是,今天我注意到有些奇怪的事情:

>我尝试安全地删除外部驱动器.
>暂停〜7秒钟.
在暂停期间,我正在窗口里大力打字.
>突然,一个消息框从我的应用程序中窃取前台,而我的打字则转而进入消息框.

显然,这不是使用热键机制 – 而是Windows可以从我的应用程序窃取焦点.

我真的怀疑有什么像“后门”只是为了这个特定的目的(虽然请纠正我,如果我错了),所以,假设不是这样,必须有办法正确地做到这一点,而不使用热键机制.

所以问题是,这是如何实现的?

注意:

汉斯指出,“后门”是AttachInputThread,但我并不真的相信这是发生在这里 – 特别是自0701以来.想法?

我已经做了一些实验,从我可以看到这种情况发生,如果且仅当新的窗口属于Windows资源管理器.某些控制面板在Explorer中实现,或者作为Explorer插件实现.我可以通过从开始菜单中打开“操作中心”(配置启动菜单,以在菜单显示控制面板项目)来轻松地重现它.

那么我怀疑这个行为是Windows资源管理器拥有桌面窗口这一事实的结果,GUI是特殊情况.

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

相关文章

Windows2012R2备用域控搭建 前置操作 域控主域控的主dns:自...
主域控角色迁移和夺取(转载) 转载自:http://yupeizhi.blo...
Windows2012R2 NTP时间同步 Windows2012R2里没有了internet时...
Windows注册表操作基础代码 Windows下对注册表进行操作使用的...
黑客常用WinAPI函数整理之前的博客写了很多关于Windows编程的...
一个简单的Windows Socket可复用框架说起网络编程,无非是建...