explorer.exe 崩溃后缺少图标

explorer.exe 崩溃后缺少图标

这种情况已经发生过几次了,但我从来没有花时间去看看这个问题是否有解决办法。当 explorer.exe 崩溃时(例如,由于在丢弃大量文件后打开回收站并关闭挂起的 Windows 资源管理器),系统托盘中的某些图标不会显示,即使程序跑步。

关闭并启动丢失图标所属的程序(例如 Spotify)可恢复图标。有人知道为什么会发生这种情况吗?是否有办法恢复丢失的图标而无需重新启动相关程序?

答案1

程序启动时通常会在 Explorer 中注册自身(并将其图标放在系统托盘中),我相信在运行程序时可以合理地频繁更新其图标,但如果它们在崩溃后不请求更新或重新注册,那么它们就不会再次出现。

我希望在资源管理器崩溃后重新出现的程序是由那些机器与您的机器类似不稳定的开发人员编写的,或者他们很可能通过设计定期更新其图标,从而规避您遇到的问题。

答案2

似乎有一些特定的步骤可以恢复系统托盘。如果您正确关闭并重新启动 Explorer,您的系统托盘图标将恢复。我从未期望系统托盘项目在崩溃后完全恢复,但它似乎有效!:)

  • 点击“开始菜单”
  • 按住 Shift + Ctrl
  • 右键单击长方形“开始”菜单的空白区域
  • 选择退出资源管理器

您的任务栏现在已经消失了。

  • Ctrl + Shift + Esc 进入任务管理器
  • 文件 > 新建任务(运行...)
  • 浏览器

您应该会看到所有系统托盘图标都返回。

来源:关闭并重新启动Explorer.exe

答案3

我自己想出了一个解决方案,解决了这个问题,不像建议的“重新启动 explorer.exe”解决方案。问题不在于 Windows 资源管理器,而在于系统托盘中的程序没有写入在 explorer.exe 崩溃后在系统托盘中重建。此解决方案需要输入一点 .bat 文件,但除此之外,基本上就是这样了。

-

1)在任务管理器 (CTRL+SHIFT+ESC) 中,找到系统托盘中缺失的程序。它们应该都还在运行,只是不在系统托盘中。在任务管理器中滚动一会儿后,您应该会找到它们。右键单击第一个程序,然后单击“打开文件位置”。这将为您提供文件路径的名称以及应用程序(在 Windows 资源管理器中突出显示)。

2)打开记事本。您将输入一个 .bat 文件。复制单击“打开文件位置”时打开的 Windows 资源管理器窗口的路径。您需要将其粘贴到记事本中。您还需要知道您实际打开的程序的文件名,该文件名已被 Windows 资源管理器突出显示。命令应采用以下确切格式(没有括号,并且是您自己的文件和路径名):

    @echo off
    cd "C:\[file path]"
    taskkill /f /im [file name].exe
    start /f /im [same file name].exe

    cd "C:\[file path]"
    taskkill /f /im [file name].exe
    start /f /im [same file name].exe

    cd "C:\[file path]"
    taskkill /f /im [file name].exe
    start /f /im [same file name].exe

    -exit

确保在开头包含“@echo off”并在结尾包含“-exit”,以便自动关闭程序。我按照系统托盘中显示的方式从右到左排列每个程序的命令。如果您想确保它们以正确的顺序加载,这是一个好主意。

3)将记事本中的文本另存为 .bat 文件。为此,请在“另存为...”提示中删除“.txt”扩展名,选择“所有文件()”,并在文件名末尾添加“.bat”。

4) 重要的: 此程序应始终以管理员身份运行。每次您想要重建系统托盘时,您可以右键单击该程序并单击“以管理员身份运行”,或者创建一个快捷方式到存储该程序的任何位置,以自动以管理员身份运行。

为此,请右键单击原始 .bat 文件,然后单击“创建快捷方式”。右键单击刚刚生成的快捷方式,然后单击“属性”。在属性窗口中,单击“高级...”按钮。在此提示中,选中“以管理员身份运行”框,然后单击“确定”,然后再次单击“确定”以关闭所有内容。我将此快捷方式添加到“开始”菜单,以便在 explorer.exe 决定崩溃/重新启动时可以轻松搜索它。您应该将快捷方式添加到“C:\Users\您的用户名如果您愿意的话,请参见“\AppData\Roaming\Microsoft\Windows\Start Menu\Programs”。

-

我希望这能帮助任何遇到与我相同问题的人!

这是我的程序的 .bat 文件示例,供参考:

系统托盘重建程序.bat

    @echo off
    cd "C:\Program Files (x86)\FSL\IconRestorer"
    taskkill /f /im IconRestorer.exe
    start IconRestorer.exe

    cd "C:\Program Files (x86)\Moo0\SystemMonitor 1.76"
    taskkill /f /im SystemMonitor.exe
    start SystemMonitor.exe

    cd "C:\Program Files (x86)\Software by Design"
    taskkill /f /im TrayTool.exe
    start TrayTool.exe

    cd "C:\Program Files (x86)\PrinterShare"
    taskkill /f /im paConsole.exe
    start paConsole.exe

    -exit

相关内容