如何找到吸引焦点的进程

如何找到吸引焦点的进程

启动计算机后,我通常会很快启动 Web 浏览器。我经常看到标题栏短暂闪烁,颜色从 变为ActiveInactive浏览器不处理鼠标滚动或键盘光标消息。我需要单击浏览器才能使其获得焦点并再次开始处理输入。

没有其他应用程序正在运行(就上面有一个按钮而言Taskbar)。当我运行任务管理器时,没有明显迹象表明它是罪魁祸首。是否有任何第三方技术工具或内置 Windows 应用程序可以识别哪个进程正在获取焦点?大概WM_SETFOCUS涉及一些 Windows 消息,所以也许有某种方法可以告诉 Windows 记录处理此消息的任何进程?

Windows 8.1

答案1

我首先想到的是,这只能直接用钩子来完成。在这里你可以找到一个(未回答的)关于这个方向的问题 https://stackoverflow.com/questions/29214086/how-to-catch-every-windows-setfocus-message

正如另一个问题中提到的,我的策略是使用像 Russinovich 的 ProcExp 这样的详细进程监视器。然后当焦点丢失时,按 Alt+F4 向罪魁祸首发送类似 WM_CLOSE 的消息。然后您将在 ProcExp 中看到进程关闭(红色)。

答案2

您提到这在启动时发生。

我怀疑某个程序或脚本启动后只运行了一瞬间。它的窗口弹出,但随后就直接关闭了。速度非常快,你甚至都看不到窗口出现(它甚至可能以最小化或屏幕外的形式启动,但确实会窃取焦点。

我的建议是检查启动时启动的内容。可以使用 来完成msconfig

您可以禁用可疑的程序或脚本,看看是否是它们导致的,然后重新启动。虽然您可以自己启动程序或脚本,但这可能不起作用,因为当前正在运行的程序可能会启动这个焦点窃取窗口,而且由于当您第二次执行程序/脚本时它仍在运行,它可能什么也不做。

相关内容