如何防止Windows应用窃取焦点

7
我知道这不是一个严格的编程问题,但你们都一定经历过这种情况。
所以...你在公司VPN上有四五个RDP会话正在运行,你正在你最喜欢的IDE中努力工作,你与数据中心的VPN短暂地断开连接然后恢复,所有的RDP会话开始重新建立它们的连接,并且在逐个连接时保持抓住焦点,一个接一个。非常烦人和粗鲁。
有什么办法可以防止这种行为,只需使RDP客户端闪烁任务栏按钮,而不是完全从你正在做的事情中抓住焦点?
@Jason - 感谢回复,我正在运行64位Vista和64位Windows 2008。有什么好的想法吗?
@Jason - 好主意。完成了。

@Ryan - 感谢您的回答。我之前尝试过 Terminals,但经常需要同时查看两到三个会话,而选项卡并不能很好地实现这一点,如果有一个“弹出到自己的窗口”按钮就好了。我曾经拿到源代码来修复这类问题,但从未有时间去做。我还发现,每当网络短暂中断(例如 xDSL 抖动)时,它会连接到错误的会话(通常是新的),并在服务器上保留我已打开的会话处于断开状态。否则,Terminals 将非常酷,我们有 200 多个 Windows 服务器,整理所有那些 .rdp 文件可能会很痛苦。

3个回答

6
我使用 Tweak UI 配置资源管理器,使应用程序不会窃取焦点;您还可以配置它们在任务栏中闪烁的次数。
编辑:一旦进入 Tweak UI,这些选项可以在“常规”>“焦点”下找到。
编辑:@Kev,显然有一个64位版本(显然不是微软批准的,当然我会扫描病毒)可以成功地与64位版本的XP一起使用。据我所知,您可以下载并以管理员身份在XP兼容模式下运行它,它就可以解决问题了。Tweak UI基本上是围绕一组注册表修改的美好包装器,因此我想如果您不喜欢以这种方式运行Tweak UI,您也可以找到这些修改本身。希望这对您有用!

3
作为替代方案,您可以尝试使用类似于Terminals的工具。它允许您在同一窗口中以选项卡形式打开多个远程桌面窗口。非常酷。此外,它是开源的,因此如果需要,您可以更改其行为(虽然我不认为它像普通RDP会话那样窃取焦点)。

Terminals Screenshot


2

由于我认为除了XP以外,TweakUI没有获得批准的版本。 显然,在注册表中进行此更改对Vista具有类似的影响:

[HKEY_CURRENT_USER\ControlPanel\Desktop]

ForegroundLockTimeout = 0

然而,我发现 (Vista x64) 虽然焦点仍保持在原始窗口上,但有问题的窗口仍会占据前景 - 相当分散注意力。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接