A very useful feature in Windows is the ability to automatically
hide system tray icons when they are not in use. The problem is that
over time, Explorer caches a list of every single icon that it's ever
seen, and your list might grow to hundreds of items that Explorer knows
about.
The other issue is that Explorer keeps these items in memory
somewhere, so it's also causing bloat, but we can completely reset this
list with a little tricky registry editing and recycling Explorer. Note
that this will remove any settings you had set for the icons.
To get to the dialog we are talking about, right-click on the
Taskbar and choose Properties, then choose the Notification Area tab,
and click the Customize button.
Just look at all the items in the list… I don't even have some of those applications installed anymore.
Open up regedit.exe through the start menu search box, and then browse down to this registry key:
HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\TrayNotify
Now you will see two entries in the list: IconStreams and
PastIconsStream. Select both of them and delete them. (You may want to
make a backup with the export function before you do this)

Now we'll need to recycle Explorer.exe by opening up task manager (You
can use Ctrl+Shift+Esc), selecting explorer.exe in the list and
choosing End Process.

Now go to the File menu, choose New Task and type in explorer into the open box. Hit enter, and explorer should restart itself.

Now your Customize Notification Icons dialog should show you a very
clean list of items, but note that any settings you had will be reset
to default.

Note that some icons might disappear entirely until you reboot your
computer. Also, if the Volume/Power/Network icons aren't able to be
selected in the taskbar properties dialog, you should be able to close
it and re-open it and they will work again, but you might have to
select them again.
Note: For more Windows Vista Tips, Tricks & Tweaks.