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