windows - 如何防止 Windows 中的焦点窃取?

标签 windows user-interface focus-stealing

通过 Google 快速搜索 Focus Stealing 的解决方案在 Windows 中显示两个主要结果类别:

  • 提出不完整解决方案的人涉及 ForegroundLockTimeout 注册表项(或 TweakUI,我认为它只是更改了上述注册表项), 这不是很有效。
  • Incessant hordes Windows 用户 complaining关于it .

在两种常见情况下特别烦人:

  • 某事会触发程序在全屏应用程序处于焦点状态时在后台弹出对话框窗口,从而导致全屏应用程序最小化。

  • 在您打字时,一个窗口会窃取焦点,窃取您所有的击键。如果您碰巧按下空格键、Enter 键或触发键盘快捷键(例如 Y 表示是),可能会导致完全不希望的结果。

对于这两种情况中的一种或两种情况,可以应用哪些创造性的解决方案来解决此问题?

最佳答案

我有一个关于如何解决它的建议,但由于我缺乏知识,我无法完全实现。

窗口之间的焦点变化必须由调用最有可能位于 shell32 或 user32 中的 Windows API 函数的违规程序引起。某些程序,如 Adob​​e Photoshop 会多次(至少两次)调用以在启动时强制用户使用。这个想法是挂接到此 API 函数(如果可能)并检查调用的来源。如果它不是来自 explorer.exe(即 Alt+Tabbing 或单击任务栏上的图标),则调用应被所述 Hook 阻止。

关于windows - 如何防止 Windows 中的焦点窃取?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2819277/

相关文章:

windows - 如何在命令行中从重复显示切换到多个显示器

c# - 如何在Windows任务栏中制作一个文本框?

Python:获取对象的 “attribute/method/property” 作为方法的参数或作为属性

c++ - 如何在 C/C++ 中以编程方式查找 "Saved Games"文件夹?

java - 向后逻辑 : playing with fire : run . hta 作为前端 gui,java/sqlite 作为后端?

c - 最简单的 Ubuntu GUI 应用程序

java - 如何将十六进制颜色代码分配给java类文件中的任何数据类型

c# - 在没有获得焦点的情况下打开隐藏的 Internet Explorer 窗口?

android - 如何检测和防止 Android 应用程序中的焦点窃取