某些应用程序在安装、更新或打开时,往往会强制进入前台。当另一个应用程序已进入前台时(最坏的情况是全屏模式下的游戏),Windows 会切换出该应用程序,以显示强制进入前台的应用程序。
有没有办法阻止应用程序将自己激活/选中/置于前台?理想情况下,它会保持在任务栏中最小化,直到我手动提出来。
答案1
没有万能的解决方案,因为 Windows 无法完全阻止应用程序窃取焦点并保持其自身正常运行。例如,如果在文件复制期间您的防病毒软件检测到可能的威胁并想要弹出一个窗口询问您要采取的措施,如果此窗口被阻止,那么您永远不会理解为什么复制会突然冻结。
如果问题出在一些未知的焦点窃取者身上,那么检测窃取者的一个好工具就是免费的
窗口焦点记录器
(使用 GUI 版本WindowFocusLoggerGUI.exe
)。
一旦确定了焦点窃贼,就可以采取以下几种解决方案:
- 首先阻止它运行
- 将其更新到性能更好的新版本
- 启用焦点跟随鼠标,以便焦点停留在您的应用程序中(除非焦点窃取者跳到光标前面)。
这可以通过 控制面板 > 轻松访问中心 > 使鼠标更易于使用,选中“通过鼠标悬停在窗口上来激活窗口”,然后单击确定。 - 使用比最小化到任务栏更强大的方法将其最小化。
最后一种方法是将有问题的窗口最小化到系统托盘(也称为通知区域),只有最小化它的软件才能撤消它。此类产品的一个例子是 4t 托盘最小化免费。
答案2
我发现有参考资料表明这是不可能的,但同时似乎一个办法:
- 启动注册表编辑器(Windows 按钮 + R,然后输入
regedit
) - 搜索
HKEY_CURRENT_USER\Control Panel\Desktop\ForegroundLockTimeout
- 将值从 更改
0
为30d40
- 保存并重启电脑
我现在使用的是 Ubuntu,因此无法测试它是否在 Windows 10 中有效(也许这就是您在评论中提到的)。奇怪的是,有人报告说它有效,有人报告说它无效。YMMV。
此外,这其他人则建议针对此目的的应用程序,尽管我不清楚它们是否符合您的预期目的......
有关的
- https://en.wikipedia.org/wiki/Focus_stealing
- https://social.technet.microsoft.com/Forums/en-US/c22363e5-802c-4f43-b4e3-8a7259865648/windows-10-stop-any-application-from-stealing-focus-ever-is-it-possible?forum=win10itprogeneral#123b4fea-0a57-491d-bdfa-a5ee0771f2de
- https://www.lifewire.com/how-to-prevent-programs-from-stealing-focus-in-windows-2624453
- https://answers.microsoft.com/en-us/windows/forum/windows_7-desktop/windows-7-how-to-stop-application-foreground-focus/bbfc3d0d-8b20-409d-bfef-035209e1e1d4
- https://www.reddit.com/r/Windows10/comments/3vbzth/turn_off_focus_stealing/
- https://www.tenforums.com/general-support/122077-turn-off-focus-stealing.html