如何阻止Windows应用程序窃取焦点

时间:2020-03-05 18:42:08  来源:igfitidea点击:

我知道这并不是严格的编程问题,但你们所有人都必须经历过这一点。

所以...我们通过corp VPN打开了四个或者五个RDP会话,我们正在自己喜欢的IDE中扑朔迷离,到数据中心的VPN短暂反弹然后恢复,所有RDP会话开始重新建立它们的连接,同时这样做依次保持焦点,一个接一个。很血腥的烦人和彻头彻尾的粗鲁。

有什么主意如何防止这种行为,而只是让RDP客户端闪烁它的任务栏按钮,而不是完全将注意力从我们正在做的事情上移开?

@Jason感谢答复,我正在运行64位Vista和64位Windows2008. 我们知道它的运行情况如何吗?

@杰森好主意。完毕。

@Ryan也感谢回答。我之前尝试过Terminals几次,但是我经常需要并排查看两个或者三个会话,这些选项卡的使用并不能很好地实现,所以很高兴有一个"在自己的窗口弹出"按钮。我曾经抓过源代码来修复类似的东西,但是却没有时间。我还发现,只要短暂的网络断开连接(例如xDSL震荡),它的性能就会很奇怪,它将重新连接到错误的会话(通常是一个新的会话),并使我打开的会话在服务器上处于断开状态。否则,Terminals会非常酷,我们有200多个Windows服务器,而组织所有这些.rdp文件可能会很麻烦。

解决方案

回答

我使用Tweak UI来配置资源管理器,以使应用程序不会占据焦点。我们还可以配置它们在任务栏中闪烁的次数。

编辑:一旦我们在Tweak UI中,这些选项可在"常规">"焦点"下找到。

编辑:@Kev,显然有一个64位版本(未经MS批准,显然,我当然会扫描它的病毒),可以与64位版本的XP一起成功使用。据我了解,我们可以下载该文件,然后以管理员身份在XP兼容模式下运行它,这将达到目的。 Tweak UI基本上是一个不错的注册表黑客程序包装,所以我想如果我们不关心以这种方式运行Tweak UI,我们可能会发现这些黑客程序。希望对我们有用!

回答

作为替代方案,我们可以尝试使用诸如Terminals之类的东西。它使我们可以同时在同一窗口中以选项卡形式打开多个远程桌面窗口。挺酷的。而且,它是开源的,因此我们可以根据需要更改其行为(尽管我不相信它会像正常的RDP会话那样抢占焦点)。

回答

因为我认为除了XP之外,没有TweakUI的批准版本。显然,在注册表中进行此更改会对Vista产生类似的影响:

[HKEY_CURRENT_USER\ControlPanel\Desktop]
  
  ForegroundLockTimeout = 0

但是,我发现(Vista x64)在保持对原始图像的关注的同时,令人讨厌的窗口仍然会使前景分神。