语境

语境

语境

我电脑上的一个启动程序在登录后会在桌面上启动一个短暂的cmd.exe窗口。该窗口会窃取焦点,关闭时不会返回焦点。它的持续时间太短,以至于无法读取提示中的文本。这非常令人讨厌,因为它增加了有效启动时间并影响了用户体验。

问题

如何确定哪些应用程序正在启动cmd.exe和/或在 Windows 启动/登录时窃取焦点?

注意:操作系统是 Windows 8.1 Pro。

答案1

替代启动管理器

虽然任务管理器可以给你一些有关启动项的信息,如果您想要更多控制,可以使用类似自动运行

此实用程序对自动启动位置的了解比任何启动监视器都要全面,它向您显示配置为在系统启动或登录期间运行的程序,并按 Windows 处理它们的顺序显示条目。这些程序包括启动文件夹、Run、RunOnce 和其他注册表项中的程序。您可以配置 Autoruns 以显示其他位置,包括 Explorer shell 扩展、工具栏、浏览器帮助程序对象、Winlogon 通知、自动启动服务等等。

它可以作为收集和检查潜在候选人的起点,发现您可能不知道的初创地点。

明确问题

由于您知道短暂的进程依赖于命令行处理器,因此您可以暂时覆盖cmd.exe以阻止其运行,并分析命令行参数。

  1. 使用管理员帐户登录。
  2. Win+ Rregedit.exe在文本框中输入,然后按Enter
  3. 导航到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion注册表项。
  4. 右键单击Image File Execution Options子项,选择新建 > 键从上下文菜单中,将其命名为cmd.exe
  5. 右键单击右侧窗格中的空白区域并选择新建 > 字符串值. 命名新值Debugger
  6. 双击该Debugger值,并将其设置为calc.exe
  7. 重新启动 Windows 以确保所有启动项都已再次加载。所有cmd.exe进程都将重定向到标准计算器程序。
  8. Shift+ Ctrl+Esc调出任务管理器。
  9. 切换到细节选项卡,右键单击列标题栏的任意位置,然后单击选择列
  10. 启用命令行选项,然后单击好的
  11. 检查calc.exe列出的所有进程,并记下它们的命令行参数。
  12. 完成后,删除cmd.exe您在步骤4中创建的密钥。

相关内容