Missing icons after explorer.exe crash

This has happened a few times now, but I've never taken the time to see if there's a solution to this problem. When explorer.exe crashes (due to, say, opening the Recycle Bin after throwing away a lot of files and killing the hanging Windows Explorer), some icons in the system tray don't show up, even though the programs are running.

Closing and starting the program that the missing icon belongs to (say, Spotify) restores the icon. Does anyone know why this happens, and if there's a way to restore the missing icons without having to restart the programs involved?


Solution 1:

When the program starts up is usually the time that it registers itself with Explorer (and puts its icon in the system tray) and I believe that while running a program can update its icon reasonably often but if they do not request an update or re-register themselves after a crash then they will not appear again.

I would expect that the programs that reappear after an explorer crash are written by developers whose machines were unstable in a similar way to yours or chances are they update their icon regularly by design and so circumvent the problem you are experiencing.

Solution 2:

It seems there are specific steps to restore your system tray. If you close and restart Explorer properly, your system tray icons will return. I never expected by system tray items to fully return after a crash, but it seems to work! :)

  • Click Start Menu
  • Hold down Shift + Ctrl
  • Right-click on blank area of the long rectangular Start Menu
  • Select Exit Explorer

Your task bar is now gone.

  • Ctrl + Shift + Esc to get to the Task Manager
  • File > New Task (Run...)
  • explorer.exe

You should see all your system tray icons return.

Source: Close and Restart Explorer.exe

Solution 3:

I came up with a solution for myself and this fixed the problem, unlike the proposed solutions of "restarting explorer.exe". The problem is not with Windows Explorer, but rather that the programs in the System Tray are not written to rebuild in the System Tray after an explorer.exe crash. This solution requires a little bit of typing up a .bat file, but other than that that is pretty much it.

-

1) In Task Manager (CTRL+SHIFT+ESC), find the programs that are missing in the System Tray. They should all still be running, however not present in the System Tray. You should find them all after a bit of scrolling through Task Manager. Right-click on the first one and click "Open File Location". This will give you the name of the file-path, as well as the application (highlighted in Windows Explorer).

2) Open up Notepad. You will be typing up a .bat file. Copy the path of the Windows Explorer window that was opened up when you clicked "Open File Location". You will need to paste it into Notepad. You also need to have the file name of the program that you are actually opening up, which is already highlighted by Windows Explorer. The command should be in this exact format (no brackets and your own file and path names):

    @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

Make sure to include "@echo off" at the start and "-exit" at the end in order to automatically close the program. I ordered the commands for each program in the way that they appear in the System Tray from right-to-left. This is a good idea if you want to make sure that they load in a correct order.

3) Save the text in Notepad as a .bat file. To do this, delete the ".txt" extension in the "Save as..." prompt, select "All files (.)", and add ".bat" to the end of the file name.

4) IMPORTANT: This program should always be ran as Administrator. You can either right-click the program and click "Run as administrator" every time you would like to rebuild the System Tray, or create a shortcut to wherever it is stored that automatically runs as Administrator.

To do this, right-click the original .bat file and click "Create shortcut". Right click the shortcut that was just generated, and click "Properties". In the properties window, click the button that says "Advanced...". In this prompt, check the box that says "Run as administrator", and click OK, then OK again to close everything out. I added this shortcut to my Start Menu in order to make it easily searchable whenever explorer.exe decides to crash/restart. You should add the shortcut to "C:\Users\ Your User Name \AppData\Roaming\Microsoft\Windows\Start Menu\Programs" if you would like to do so.

-

I hope that this helps anyone with the same issue I had!

Here is an example of my .bat file for my programs for reference:

System Tray Rebuilder.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