这个问题与防止应用程序窃取焦点没什么不同,而是我如何才能找出到底是什么是窃取焦点?
情况是这样的。我会在 Vista 上的 Firefox 中输入一些内容(就像我现在一样)。每隔几分钟,就会有其他东西夺走焦点。这不是因为窗口移到了前台。这种变化有些微妙,前台窗口具有取消选择的窗口的属性(例如,菜单略微变暗),但在输入时最为明显,因为我输入的键不再发送到该窗口。这也让它变得非常烦人。
我怎样才能找到这个讨厌的东西并将其除去?
答案1
尝试 Sysinternals ProcessExplorer。它是一款任务管理器替代工具,可以准确跟踪弹出的每个微小进程。
让它运行并返回到您的应用程序。当问题发生时,按 Alt-Tab 转到 Procexp,您可能能够抓住引起所有注意的内容。
编辑:我刚刚发现了这一点:Auslogics 任务管理器它几乎肯定会帮助您识别正在发生的事情,并且比 Procexp 具有更直观的界面和更易于访问的大量信息。
答案2
我遇到了和发帖人一样的问题。我尝试使用 Alt-Space 调出窗口菜单。这明确表明存在一个具有焦点的“隐藏”窗口(大小为 0x0)。使用移动菜单选项移动它不会显示它属于哪个窗口。尝试选择关闭菜单选项完全没有效果。似乎程序忽略了关闭窗口事件。
我正在考虑一个调试器,它可以向所有窗口的窗口菜单添加一个菜单,使其能够在运行时附加到调试器。有人知道有哪个程序可以做到这一点吗?
更新:再次发生这种情况后,我实际上尝试了“最小化”菜单选项,结果,AVG Free 9.0 Web Browser 窗口出现了。但是为什么它被隐藏了,为什么它每隔 5-10 分钟左右就会获得焦点?
更新2:AVG 似乎已经修复了这个问题。http://forums.avg.com/cz-en/avg-free-forum?sec=thread&act=show&id=41015#post_41015
答案3
我用的是优秀的Adminscope 焦点记录器这个问题的罪魁祸首是一些 Epson 实用程序,它没有做任何有用的事情,只是作为计划任务运行。
只需阅读说明并让焦点记录器运行一段时间即可检测出移开焦点的程序。该程序在 XP 上运行(可能还有其他版本的 Windows,例如 Windows 7、8 等)。
编辑:并且,与本线程中列出的某些程序不同,它是免费软件。
答案4
当应用程序窃取焦点时,请尝试按下空格键右侧的 Windows 键(上下文菜单)。它可能会显示上下文菜单,可能有助于找出哪个应用程序正在窃取焦点。
如果失败,请尝试按 alt-F4,它会向窗口发送关闭消息。