Yesterday I got out my laptop (which is running Vista Ultimate) to do some work on one of my websites. When it loaded itself out of sleep mode I noticed that the battery, volume, and network icons in the system tray were missing:
Naturally I was puzzled by this, and a little annoyed because I could no longer tell how much battery life was left (important because I like to get up and go sit on the deck while I work every so often). First thing I did was check the Taskbar properties, and found something odd:
As you can see in the above image, the checkboxes for the volume, network, and power icons are grayed out and not-selectable. From my Windows development experience, I knew that Vista keeps a cache of recently used system tray icons in the registry, so on a hunch I popped open RegEdit and found where this cache is stored:
and the values

To make a long story short, I backed up the registry, deleted the "IconStreams" and "PastIconsStream" values, opened up the Task Manager, ended the "explorer.exe" process, restarted "explorer.exe" and just like that the missing icons had returned:

An odd problem, but thankfully one that is easily fixed.
Edit (Added 01/28/2008): It's worth trying to restart explorer.exe (see Step 4) before trying the registry modifications, because that may fix the problem on its own.
- Go to Start > Run (or Windows-key + "R"), type in "regedit" and hit "OK".

- Navigate to the key "HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion \TrayNotify"

- Delete the values "IconStreams" and "PastIconsStream"

- Now open up the Task Manager (Ctrl + Shift + Esc), go to the "Processes" tab, select "explorer.exe" and click "End Process"

- Now open the "Applications" tab and click "New Task..." at the bottom-right of the window.

- In the message box that pops up type in "explorer.exe" and hit "OK"

- Explorer.exe will reload, and that's it! The missing icons should now be back in the system-tray where they belong.