Systray icons missing

Sun, 2007-07-15 21:05 by admin · Forum/category:

Result statistics—please report your results.

The Problem

General

The system tray (in short: systray, nowadays also called taskbar notification area) is the icon strip normally located near the right end of the task bar, next to the clock.

Some Windows XP installations show a peculiar defect in that some systray icons disappear or, rather, do not appear, when the system is booted and the user logs on. The problem is even more prevalent on systems with autologon. The most frequently affected icons seem to be the speaker icon (sound volume) and the power/energy icon.

Please note that the problem has been completely solved. You can find the solution in the next chapter, Main problem and complete solution.

Hide inactive icons

This has nothing to do with the hide inactive icons settings. The defect shows up when you don't have any icons set for hiding.

In any case, please make sure for now that you haven't activated that setting. Right-click the task bar, click on Properties, uncheck the last check box. You can reactivate it later if all other problems are identified or solved.

In Vista, if the Clock, Network, Volume and Power icons have disappeared and when you go into properties on the taskbar and look at "System Icons" under the "Notification Area" tab, Volume, Network, and Power are greyed out, then visit Paul's Forum and run his fixing program.

2006-08-14 – Glenn S. reminds us that, if other icons disappear for good and never reappear, we should check first whether the programs are started at all.

Check your Startup folder and the starter registry entries through Start, Run..., type: msconfig, press Enter, to check whether the programs are really started at system start, or use Task Manager (Ctrl + Shift + Esc) to see whether the processes are running.

Sound volume

A particular and special problem is that only the sound volume icon disappears, but the others are there. In this case the main solutions below will not work. Instead you have to look at the sound driver. Try to reinstall it. But first read the chapter "Other known causes" further below for some specific symptoms and solutions.

Task Manager

There are a few other problems that can cause similar behavior and can mislead you into believing that they are the same problem. If you are not sure, read the entire article first, because a few more are described later. The ones concerning Task Manager are described in the next chapter, because they can be too easily mistaken for the main problem described in the other chapters.

Entire taskbar

If, however, your entire taskbar or any major part of it is missing altogether, then the rest of this article is irrelevant to you. Instead the Kelly's Korner tool Taskbar Plus! may or may not help you. I don't know what exactly it does and can only recommend to use it carefully and to use only the function that pertains to solve your immediate problem, then test the result.

UPnP and some general remarks

Often, but not always, the phenomenon of the missing systray icons seems to be triggered by the UPnP User Interface, but more on that later. (By the way, don't mistake UPnP for PnP, Plug-n-Play, which is mostly a different thing.)

Microsoft has not taken notice. The causes are obscure. Some users report successes with various changes that influence the boot and logon timing, but these changes do not reliably solve the problem. Often they make the problem occur less often though and make it bearable.

Be careful not to be fooled by others or by your own brain that may see causality where there is none. People try the weirdest things, then they get all their icons and conclude sharply, but wrongly, that whatever they did solved the problem. About the weirdest and totally wrong recommendation I have seen was to switch off your computer and let it sit without power for three hours. Don't fall into such a trap. The web has a lot of snake oil, particularly in relation to the problem of the disappearing systray icons.

Then there is the fact that some change solves the problem, just by changing the boot and logon process sequence or timing a little bit. Thus I receive hundreds of emails, detailing ever more different solutions to the problem, each of which has been tried and worked on one computer. We have to suspect that each of these many solutions works only on a few computers. If defragmenting the hard disk can solve the problem for some, then anything can solve it, and the solution may not be long-lived either.

Main problem and complete solution

2010-10-09 – nars has posted a patcher tool (direct download link, also attached here—see below) that solves the problem even for future versions and makes patching very easy and quick. Thanks a lot, nars!

The main cause of the more common problem is that the systray program is temporarily unable to process icon inclusion requests. An earlier hypothesis, that systray.exe is loaded too late, has been refuted by Thomas Gregory Platt (see his email below).

According to the excellent analysis in the Problem analysis and proposed solution comment by tasmanian this is caused by a timing defect in the Windows function Shell_NotifyIcon in shell32.dll, which has a timeout fixed at 4 seconds. Combined with an unfavorable Windows API message this causes the problem, which befalls many heavily loaded computers that don't have ultra-fast hard disks. Changing the timeout to one minute and removing the unwanted message solves the problem, and in the Complete solution comment user depassp has perfected the procedure of patching shell32.dll to solve the problem, at least until a new version of that DLL is delivered by Microsoft that re-introduces the problem and requires another patch session. In fact, exactly this has happened around July 2010, but the solution is already here: Offsets for NEW 6.0.2900.6018 file by mcrealize, corrected by TeaRex

Unfortunately patching a system DLL is not an entirely simple procedure and can only be done with a certain minimum of computer handling experience, but this is the best we can offer for now.

Task Manager problems

A few special problems concern the Task Manager and its systray icon only, the green one that dynamically shows the CPU load. If your problem is the disappearing Task Manager icon, then read on. If, however, other systray icons disappear as well, then you should first skip this chapter and continue with the next.

Mike Newhall contributed the following information on 2005-12-10. Thanks a lot, Mike!

One problem is the disappearance of the Task Manager systray symbol when you start Task Manager the second time or subsequent times.

This problem appears to be related to the Classic desktop theme. When you change your desktop to the XP style, the problem no longer occurs. Do this for a test.

The cause is as yet unknown. The simplest workaround is to never close Task Manger.

Another problem is that the icon or the entire Task Manager never appears at all. This can be caused by a registry setting that is not present in a default installation:

HKEY_CURRENT_USER
 \Software
  \Microsoft
   \Windows
    \CurrentVersion
     \Policies
      \System
"DisableTaskMgr"=dword:00000001

You can set this value to zero or, to recreate the default situation, remove the value entirely. To have the value removed automatically, click here and give permission when asked.

In fact, the entire System key does not exist in a default installation, so you can even delete that key if you are sure there's nothing in it that you need.

Two simple workarounds

If any of these solve your problem, please report here.

Log off, log on again

Now we're getting back to the main problem, the sporadic missing of various icons, particularly after the first logon after booting. Typically missing are the power icon or the sound volume icon, but many others can be affected just as well.

The immediate workaround is to log off and log on again (do not reboot, only log off). In many cases the icons then reappear. If not, you can try to repeat the procedure until you have all of them.

If this works, then most likely you have the central problem described in this article.

Wait a minute!

The other workaround is, the next time you boot your computer, wait for a full minute after the logon dialog appears or, better, watch the hard disk light and wait until disk activity subsides entirely for at least 5 seconds. Only then log on and check whether this solves your problem.

On two of my computers this solves the problem entirely, even though other workarounds, like the systray_cleanup.reg file mentioned below, don't work. This also means that you have to log on as quickly as possible when you're trying to test other workarounds.

2006-02-03 – Eric Maier mentioned that you can only delay the logon when you have at least two active user profiles to log on to, or one with a password. If you have neither, the logon prompt wouldn't appear, and there would be no delay.

And, as a final remark, retest from time to time whether the problem has disappeared on its own, particularly after installing a service pack.

The most successful workarounds

Some excerpts from the many earlier mails I have received (for later responses see Comments, vote below)

Wow, after over a year of having this problem. And general slow/buggy operation of winxp. I finally reinstalled, only to have the same problem on a clean machine (made even worse by SP2 this time). Weeks of steady research into this problem and I came across your page ... I disabled upnp almost 2 weeks ago and have had no problems with my computer since. This has solved strange out of memory errors, dialog boxes missing buttons, and many other strange issues. I don't know why it happens on my particular hardware, and the solution does not make _any_ sense, but it solved it.

I have tried virtually every so-called "fix" I could find online, and NONE of them worked, until today, when someone pointed me to your site. I tried the "uninstall the UPnP User Interface" fix, and am happy to report that it worked. All tray icons appeared on reboot.
I have had an ongoing dialogue with Microsoft Tech Support about this situation, and they seem absolutely clueless. Needless to say, my next email to them will report the fix.

Thanks for the very helpful and time saving article I found on the internet

Amazing that the solution from Francesco Saverio Ostuni, such an obscure and seemingly unrelated setting would restore the icons to the system tray. My hat is off to him.
Now if only the setting to hide inactive icons would work I would be pleased indeed.
Thank you for helping to save what little hair I have.

Thank you so much for your web page on solving the disappearing system tray icons problem. I've looked all over the internet for advice on how to solve the problem and what you wrote was the only thing I found that worked!

I am very glad to read your article concerning the Systray problem. I have been struggling with exactly the same problem for long and Microsoft could not get at any reasonable solution.
On the net ... I found the trick removing "UPnP User Interface" from Windows Components and and that worked perfect: everything in the Systray is now in perfect order.

UPnP worked for me! Thanks to all. It was driving me crazy ...

The Ostuni Workaround
Worked fine on a quite a few ( ~ 10 ) Dell GX110's with AC97 audio, we use at work - Thanks for posting this info

This article was a relief to me - I thought I was the only one suffering from "disappearing icons".

After years of having my systray icons disappear and playing with very limited success with msconfig, disabling services and re-installing apps and numerous rebuilds…….
I tried the Ostuni Workaround, and all of my icons instantly came back and are now stable !!!!
Very happy !

The UPnP suggestion worked for me, amazingly. I have no idea how something so seemingly unrelated could cause such an annoying and difficult to diagnose problem, but many thanks for posting this info on your site!

Great! This problem was driving me crazy since over one year and most people didn't even understand what the issue was. Now it works perfectly and I'm really grateful for this tip! Thanks a lot.

This problem has been bugging me off and on for many months, and none of my computer savvy friends and associates could offer any practical solutions (I figured FDISK was a bit over the top). However, a Google search brought up about 352,000 hits - and yours was the second.
I applied the Ostuni Workaround this evening and my errant icons have returned. Many thanks to all contributors.

Thanks for putting together this page. The Ostuni Workaround lives up to the hype. You've ended months of frustration and computer problems!

Thanks for your article on this, tried the Ostuni method and it totally resolved my missing icons on reboot. Many reboots later no more missing icons. Quite brilliant.

I want to thank you for your website and the solution to my missing systray icons. It is a very rare occasion that I google to an immediate solution (you were number one using "systray icon missing"!). Usually these sort of problems are a month long search.
For the record, the UPnP solution worked ... and brought back the speaker icon as well! This was on a Gateway P4 laptop.
I like people that help others. You just saved my Saturday so I can have fun.
Thanks again.

very very useful
worked first time
? why has microsoft not fixed disappearing icons in one of their many sp's and upgrades

Tried the Ostuni Workaround, so far it's solved the problem.
My god man, THANK YOU for providing this information. I was about ready to do like that duck with the hammer you always see on people's desks...

Man, if I hadn't found your site I would have gone crazy over this. It's the most anoying I've ever experienced.
But then I found your site and
The Ostuni Workaround
I have never been happier in my life (well thats not entierly true), but anyway it works fine!
Thanks for a great site!

The Ostuni workaround is awesome. I have been trying to figure this out for ages, since I had XP home and it seems to have carried over to XP Pro and it is so annoying. I love having a full system tray, and now with this somewhat fix, it has worked for me!! Like a dream come true, :-)
Thanks So Much, [...]
P.S. It works, it really really works!! ;)

Many thanks for this. The Ostuni workaround worked for me. It was driving me crazy! Great help!!!!

The Ostuni Workaround did work for me 100%. I had that problem for months and it was getting worse … finally decided to try to fix it today and found your page … my 10 icons are now showing up at every reboot.
Thank you very much for your page!

My good-man Hans,
I want to thank you so much for having this page online! I was getting so annoyed about those missing icons in the system tray. I used The Ostuni Workaround simply by going to My Network Places and then clicking on Hide UPnP Devices. A simple restart and everything was there. Normally I had to kill the 'missing-icon' programs and restart them. And some of them you can't kill with Task Manager, e.g. ZoneAlarm Pro v6.1.737 [zlclient.exe]. Or another trick I did was logging off and back on. Most of the time it restored all icons, but not always. So:
Thank you so much! You really made my day.

I've tried the systray.reg script and the vbs hack that delays the startup to avoid "unable to create shell notification icon" error. Both tricks seem to have worked just fine!
The systray.reg has restored the always missing volume icon as well as the occasionally missing outlook icon (outlook is started automatically "minimized to tray" on system startup).
The delay trick works excellent with Asus Probe.
This is absolutely brilliant!
Thanks a lot!

Rooting out the problem—patching shell32.dll

Oour users cooperated to find and program the fundamental solution to the problem. The cause has been determined as a defect in shell32.dll, a Windows component. Please see Main problem and complete solution above.

The Ostuni Workaround

2004-11-11 – Francesco Saverio Ostuni wrote: "... I found a solution for me that works perfectly. I simply went to My network Places and on the left pane I chose to Hide UPnP devices. This operation does not disable the service (which I need)."

To see this choice, you have to have Tools, Folder Options, Show Common Tasks selected.

This is still one of the most successful and not very intrusive workarounds, so you could try it first. I keep getting emails stating that the Ostuni Workaround worked well and solved the problem.

See also the subchapter on some more details below.

Cleaning up the registry

The following text contains links to registry setting files, which, except for the first one, are a bit stronger than the straight Ostuni workaround. If you want to check what they do before actually applying them, you can right-click on the link and elect to save the file to your hard disk. Then you can open it with a text editor like the Windows notepad editor and see what they do.

After two emails (see emails from Mark Medrano and Ingo Schupp below), the suspicion grows that the PastIconsStream registry entry can grow beyond proportions and hinder the systray icons. The solution is to click on systray_cleanup.reg, confirm the execution, then confirm the registry change, reboot your computer and test.

These registry entries can safely be deleted, because Windows automatically recreates them after the next two reboots. By the way, this registry file does about the same as running systray.reg and then systray_undo.reg (see below).

2007-01-16 – Thanks to Haris J. S. for the following information: This and the fixes below reset the inactive icons timers, so for some time like a week or two there will be no inactive icons. They will come back later on their own.

More radical: stop UPnP services

If the workarounds described don't work for you for any reason, read on. Before we go into the details, if you still want a quick solution and don't mind that a few settings, including any Explorer policies, are reset to their defaults, you can click on systray.reg, confirm the execution, then confirm the registry change, reboot your computer and test. Unlike the softer Ostuni workaround this disables both services, SSDP and UPnP, altogether and also cleans up the registry as described above. Since the Windows Media Player network sharing service depends on the UPnP service, it also gets stopped, so if you need that, you cannot use this workaround.

If this still doesn't cut the bill, you can try this stronger one: systray_plus.reg, and again confirm, reboot, and test. However, the old poll results show that few users actually did this successfully, so we may consider this workaround undesirable and not waste time on it. I leave it here just in case somebody wants to experiment with it.

You need to do this only once. The changed registry settings are permanent, until you undo them.

If none of the above works for you or if you later need the UPnP services, you can undo the nonstandard changes and reset them to their defaults with systray_undo.reg, but note that any previously removed non-standard settings, like Explorer policies, cannot be reinstated. In a normal installation there shouldn't be any such settings. A reboot is again required to make the change effective.

If you've tried these, please report here which one worked or didn't work for you. Please try them in the order below, like this:

  1. Apply the file by double-clicking on it and giving permission for the change.
  2. Reboot, log on.
  3. Check whether all icons are there.

Please test more than just once if the problem is sporadic. It is important for all of us to also learn which one didn't work.

Results from since 2006-11-10:

  • systray_cleanup.reg : 16
  • systray.reg : 13 (earlier reports: 26)
  • systray_plus.reg : 1 (earlier reports: 3)
  • neither, i.e. both failed : 0 (earlier reports: 1)

If you want to know what these files do or if you just want to keep them, you can store them by right-clicking on the above links and choose to save the target on your computer. Then you can open each file with the Notepad editor (Open with ...) and, if you like, make the registry changes by hand. They do a bit more than what is described below. The minus signs in the files indicate deletions.

A new program

Alex Milner has written the new program TrayIconsOK!, downloadable from http://am.vghost.ru/, which purportedly solves the problem permanently (but not the sound volume problem). Thanks, Alex! The program delays desktop loading by some adjustable seconds, and that seems to do the trick for many installations, but not for all.

This is shareware with a single-digit $ price. The unregistered version is fully functional for 30 days and has a nag screen. You can test it thoroughly before having to pay up.

If you've tried this program, please report here if it worked for you. Older results of 2007-02-06 to 2007-07-21:

  • It works: 8 reports
  • It doesn't work: 6 reports

The Diez Workaround

2006-06-30 – Steve Kreideweiss wrote from Cairns, Australia: "I tested the tip from Jose Luis Diez setting SSDP and UpnP to Automatic. This seems to work fine for me as well. I was wondering why it was on Manual at all?"

So please read the hint from Jose Luis Diez below or just read on. Apparently this changes the boot and logon timing enough on some computers to make things work. On one of my computers just setting the SSDP service start type to automatic did actually solve the problem.

Here's the quick way to test it. Click on the desired setting, then confirm as often as needed, then reboot and test.

Change settings to automatic:

Change them back to their default setting of manual:

You have to reboot each time to apply the settings and test.

If any variant of the Diez workaround solved your problem, please report here.

Emails received before 2007-07-21:

  • ssdp_automatic.reg – 3 successes, 1 failure
  • Both – 2 successes, 3 failures

Unfortunately the statistics don't look too good. If we don't get a number of successes soon, this subsection will have to disappear. But read also the following:

2006-10-11 – J. L. Heath wrote:

I solved the problem using your page by 1st doing the Ostuni workaround (hiding UPnP) and then clicking on both Diez automatic links, and rebooting.

I think the key might be doing both workarounds in succession, instead of one or the other.

Worked like a charm-- thanks!  J.

More details of the Ostuni Workaround

Francesco Ostuni further mentioned that the same can be done through Control Panel, Add or Remove Programs, on the left side: Add/Remove Windows components; select Networking Services, click on the Details... button, remove the checkmark for the UPnP User Interface, then click on OK. The result is the same. Now the icons are back every time at each reboot.

This has meanwhile been confirmed by many other users and consistently kept a success rate of well over 90%, so we can conclude that this solves the problem on all but the most unusual Windows XP installations.

Thanks, Francesco, in the name of the many systray users you've made happy!

Apparently this option is only there after Service Pack 2 is installed. I'm not sure whether and how this would work in Windows XP installations without SP2.

It is as yet unclear what exactly the UPnP User Interface does, beside opening two ports. Any information is welcome.

Several people including myself suspect that the UPnP interface does not directly cause the problem, instead there seems to be something wrong with the load order or timing. Perhaps the UPnP interface hogs the system in a way that blocks the systray for too long on some computers.

2005-03-13 – Volker Severt wrote that a side effect of having the UPnP User Interface installed already makes the UPnP devices visible, namely that the relevant ports are opened in the firewall. If you uninstall the UPnP User Interface, these ports are automatically closed, but you can reopen them by hand. They are TCP 2869, subnet, and UDP 1900, subnet. Thus you can still have the UPnP devices visible.

2005-06-15 – Jose Luis Diez wrote the following intriguing email (see also the subchapter "Diez workaround" above for the short step by step instructions).

I had been dealing with this problem for a week and followed all the hints in your page to no avail. I followed the Ostuni workaround and it didn't help either. (SSDP and UPnP were already disabled.)

I tried the Startright program and it worked great. I highly recommend that program.

Hoewever, I got bored about having an extra loader and kept playing with the settings and guess what. I turned SSDP and UPnP to Automatic under Administrative Tools -> Services and IT FIXED THE PROBLEM. :D

Funny thing is that I have uninstalled Internet Gateway and UPnP under Windows Components uninstall but the UPnP still shows in the Services settings under Administrative Tools.

All in all very strange.

After playing with my system for a while I agree and I'm 100% sure that the problem of the icons disapearing is due to the systray not ready to place the icons when the application loads. SSDP and UPnP just fix this by a collateral of changing the way things boot.

2005-07-17 – Michael Fornoff wrote:

The Ostuni Workaround worked for me too!

It seems that it solved another problem too: when I activated a network connection (plugging in the network cable, opening a dialup or a VPN connection) very often the explorer was locked for about 2 to 5 minutes. I had already found out, that it was sending UPnP requests over the network at that time, but did not really know what to do, as simply disabling the UPnP service did not help.

"Hide UPnP devices" in "My Network Places" did it. It solved both problems: the missing tray icons and the temporary system lock nearly every time I connect to a network.

2005-07-18 – M. D. Harper wrote:

This definitely seems to be a startup sequencing/timing problem. I did the "Ostuni Workaround" my icons came back and I stopped getting a driver failed to start error when my PCI Latency Tool tries to change the PCI devices' latency automatically on startup (I previously had to start the program manually after the computer starts and apply the new settings).

2005-10-15 – Drystan Brod wrote:

I was intrigued by all the references to the UPnP service on your web page—I always disable it as part of installing windows and didn't think that would be my problem. I checked anyway and was rather irritated to discover that it had been misteriously re-enabled, possibly by a windows "security update". Seconds later, using Steve Gibson's UnPlug n' Pray utility (which is free from www.grc.com) the problem was solved. Please find room on your web page to pass on my recommendation of this excellent tool.

Done, but instead of using a big, obscure program, you can just as well use the tiny, open-source systray.reg registry script to stop the UPnP services (see above), or you can even disable them by hand in less time than it takes you to download the program.

2005-10-19 – Richard (Rick) Murphy wrote:

I just wanted to say "Thanks" for the info on the Systray Icons Missing page. This has been bugging me for months and I finally decided to try and solve it – found your page and bingo!

You might like to know that to completely solve the problem, I combined two methods.

(1) I used the Ostuni method, utilising the GRC "unpnp" tool recommended by Drystan Brod. This brought back the "loudspeaker" sound icon and a few others.

(2) Then I used the (fantastic) tool by Cliff Cawley "Startup Delayer" (http://www.r2.com.au/software.php?show=startdelay) to put delays in for "non essential" items such as Seti at Home, Yahoo Messenger, Backup Exec, Bluetooth, Skype, DynDns and the like, delaying these by upto 2 minutes after startup and spacing the delays by 10 seconds.

This brought back everything!

I'm so pleased that I've sent you a donation, something I've never done for any other "free advice" site (as they usually have mediocre advice).

Thanks again!

Thank you too, Rick, for your good report and, of course, for the generous donation!

2006-04-03 – D.K. Kraft wrote:

Greetings from Lynnwood, WA USA —

I'm e-mailing with a success story for r2 Studios' Startup Delayer (http://www.r2.com.au/software.php?show=startdelay) for a self-built dual-core (AMD) computer put together Dec. 2005, running Win XP Pro SR2 and all recent patches. All went swimmingly until around the end of March 2006, when certain program icons supposed to show up in the system tray began not loading at boot, usually in groups of three. After much frustration uninstalling and reinstalling, Google (is my friend; yes, I should remember that) provided the background on this weird and very annoying Win XP bug.

After no success whatsoever from the registry hacks and the manual log-in method, I tried Startup Delayer with a jaundiced eye, thinking that delaying loading of just the four programs in my Startup folder wouldn't do much good. I was very pleasantly surprised to find that the program could take over control of all startup programs. Delaying my Startup folder programs along with one program controlled by a registry entry, plus a delay to load my antivirus software last did the trick. The initial delay before the first program allows SystemTray to get going and deal with the basics, and then it's able to properly bring up those icons for subsequent programs. I think the key is to have Startup Delayer delay only as many programs as needed to allow others to load their icons properly. I'm fairly certain my antivirus software (GMHB Avira AntiVir) was hogging resources from the get-go that prevented a number of icons from being loaded—including its own!

Now, all ten icons show up in the system tray. Additionally, Startup Delayer's small graphic bar gives me time to kill certain programs at boot if I just don't need them to load for whatever reason. I'm very grateful to r2 Studios for making this nifty little program available as freeware, given that the two alternatives I found cost $20-$25. Would that everyone else could achieve icon happiness with this program. As they say, it did the trick. ;-D

Purrs — D.K. "Cat" Kraft

D.K., thanks for the good information and the nice story!

2006-04-20 – Dwayne Osbaldeston wrote that disabling the two services solved the systray problem, but also disabled a Palm Pilot hotsync function. He was able to get that to work again by reserving a fixed IP address for the computer and using that for hotsyncing.

2006-04 – In some web forums it was reported that Windows Live OneCare (WOC, WLOC) or Defender triggered the problem, but the above workarounds worked for them.

If disabling the UPnP service altogether solves the systray icon problem, but you needed UPnP, you can work around it by using a fixed IP address and opening ports on the router directly. If you use a router that allows you to assign a fixed IP address to a certain computer (by MAC address), fine. If not, simply give the computer a fixed address outside the router's DHCP range.

Analysis of possible causes—PastIconStreams and timing

2006-11-10 – Mark Medrano sent in the following intriguing information. Please note that the newer file systray_cleanup.reg already cleans out the big registry entries he mentions, so try this first and move on to the more severe systray.reg only if the former fails to solve the problem. Here is Mark's email:

I just wanted to write in. I've been having problems getting systray icons to appear (power, sound, and recently Ultramon which was giving an error). I ran across your page searching for an answer and started to pick through it. I already had UPnP disabled, so I moved on to the first registry file (systray.reg). For various reasons I ended up going through it manually and was surprised when I got to the "PastIconsStream" key that it was positively huge. So long that I could not scroll to the bottom of the "edit binary data" window (each time it would snap back up to the top for some bizarre reason).

I manually deleted about 1/4 of the screen at a time (as much as it would let me scroll the window) until I could select the rest of it and erase it entirely. On a hunch I stopped there and lo and behold everything comes up perfectly again. I suspect that at least in my case that key was just grown way beyond what was expected for it's size. I suspect sys tray icons that change frequently may be a contributer (like wireless card settings) or applications that create tray icons only when they're running (ffdshow filters for instance, sometimes if a system filter is used by a game I can see 30 or 40 of these icons in the tray at once, usually they disappear before the game exits and you'ld never see them), perhaps even applications that use the tray for active notification, like color coded icons and the like, I'm not entirely sure, but I do think that most of the people who have written in that Systray.reg worked for them probably only needed to drop the "PastIconsStream" key. I will be sure to keep an eye on it, though it's taken 2 1/2 years for the problem to occur originally, so I don't expect it'll be happening again soon :)

2006-11-16 – Ingo Schupp confirms this as follows:

Thank you very much for your fine work with the webpage concerning the disappeared systray icons. I can only confirm what Mark Medrano wrote on 2006-11-10: the critical registry entry actually seems to be "PastIconsStream".

I tried manually deactivating SSDP and UPnP before, which did not work for me. Then, I wanted to manually edit my registry entries one by one, starting with the aforementioned one, but after logging out and in again directly after this, the icons reappeared! This was not the case before - a break alone did not do the trick.

2006-12-15 – James Covington sent these Microsoft support instructions, some of which overlap information already given on this web page. But he wrote that this procedure always fixed the missing icons problem for some time, then needed to be repeated.

  1. Run regedit: click on Start > click on Run > type: regedit
  2. Navigate to
    HKEY_CURRENT_USER
     \Software
      \Microsoft
       \Windows
        \CurrentVersion
         \Explorer
  3. In the Explorer folder change the value of EnableAutoTray to 0.
  4. Right click Start (or anywhere on the taskbar) and select Properties.
  5. Click the Taskbar tab.
  6. Clear the Lock the taskbar option.
  7. Check Hide inactive icons.
  8. On the Taskbar tab, click Customize.
  9. In the Current Items section, select each of the items as "Always Hide". Click OK, then OK again.
  10. Start all over, re-open the properties dialog box, and select each item as "Hide when inactive" in the Current items section. Click OK, then OK again.
  11. Navigate in the registry to
    HKEY_CURRENT_USER
     \Software
      \Microsoft
       \Windows
        \CurrentVersion
         \Explorer
          \TrayNotify
  12. Delete the IconStreams and PastIconStreams values.
  13. Close the Registry Editor.
  14. Close all open programs.
  15. Open Task Manager: click on Start > click on Run > type: taskmgr
  16. Click on the Processes tab.
  17. Click on explorer.exe in the image name column.
  18. Click on the End Process button.
  19. Confirm Yes to kill the process. This will close the desktop except for Task Manager.
  20. In Task Manager select the File menu command.
  21. Click on the Create New Task button.
  22. In the Open box type: explorer
  23. Click OK.

2007-05-19 – Thomas Gregory Platt confirms that cleaning out these registry entries solves the problem for him too. He also wrote the following, intriguing message, whose core, I believe, is true or close to the truth and refutes my earlier suspicion that systray.exe is loaded too late. Thanks, Thomas! I have already amended this whole web page accordingly, so the following message now no longer appears as a correction:

I have to make one correction to what you and others seem to suspect is going on with the systray application. From my observations of boot-time behavior here, I honestly don't think the problem is that systray isn't loaded yet when the icons that fail to appear are posted. On the contrary. From what I've seen, I can plainly see that systray is present and has been active for some time because it already HAS icons IN the tray (some of them like Network Connection, System Volume Control and the "Safely Remove Hardware" icon were visible in the tray) when the "Clipmate-loads-but-its-icon-doesn't-appear" problem occurred on my system. So I'm convinced you're wrong in assuming systray isn't active yet.

One scenario that would explain part of what's going on is that the system and systray are so BUSY in the midst of the startup bedlam (perhaps systray is processing or rebuilding that long-long list of old icons?) that systray fails to finish processing the request from one app (like ClipMate) fast enough before another app (like the starting antivirus) comes in and issues a SECOND request to add an icon to the system tray. It could be that the second incoming request clobbers the first one and knocks it completely out of systray's queue. That assumes of course that systray even HAS a queue. It could be systray app wasn't designed to queue requests because its designers assumed it would be able to process incoming requests to add a new icon VERY fast (within a few CPU cycles). If the designers made that assumption, systray might only provide a few memory locations where other apps can "poke" a copy of their icon and the name and location of the program to be called when that icon is clicked and then flip an in-memory switch that tells systray "Here's a new icon for you to process.". Without queuing, if two requests from different apps occur in rapid succession while systray is "busy" doing something else (e.g. updating that long list of prior icons, perhaps?), the arrival of a second request might just obliterate the first one thus causing the earlier request to get lost.

There's a second scenario that would also explain both this behavior AND another phenomenon I've observed that no one else on your site has explicitly mentioned—the now-you-see-it-now-you-don't system tray icon glitch. It appears that some apps (like Clipmate) are designed to issue a request to add their icon to the System Tray and just go on without waiting (i.e. they're not designed to wait for a confirmation that their icon was added), while others (e.g. anti-viruses) seem to be designed so that, if their request isn't acknowledged by systray within a few clock-ticks, they "get impatient" and issue a new START request for systray—thus causing it to lose track of ALL earlier "add my icon" requests. THIS scenario would explain why some requests seem to get lost. It would also explain why some icons can be seen to appear in the tray for a brief moment or two, but suddenly disappear from it later. That's EXACTLY what was happening on MY system with both the speaker volume control and the "Safely Remove Hardware" icons. One second those icons would appear in the system tray and moments later they would vanish! I've seen remarks from several posters (including you) that suggest they assume lack of a fast reply from systray means it "hasn't started yet" or that it "should start earlier". Knowing how programmers think, that tells me some developers might decide to "take matters into their own hands" and issue their own request to start systray if they don't get a reply from it fast enough. If systray is already running but BUSY, issuing a second start request probably causes systray to lose track of all icons it has previously loaded – thus producing the "now-you-see-it-now-you-don't" vanishing icons phenomena and the "my icon never appeared" phenomena too. If I was a betting man, I'd bet on this scenario. Programmers are notorious for such high-handed tactics.

Call it an EWAG (Educated Wild Ass Guess) Hans, but as a 40 year software pro, what I see suggests that if the CPU is busy enough and the prior icons list systray must process is LONG, systray can't react FAST enough before a second request arrives. When that happens, for SOME reason (whether it's lack of queuing or an impatient programmer who tries to start systray) a second request that arrives while systray is busy wipes out the requests that preceded it – both the one systray hasn't finished processing yet AND any that HAD been completed earlier and were already in the tray.

Cannot create shell notification icon

This is an error message that some programs, apparently all written in Delphi, show when they cannot reach the systray task to put their icon into the system tray. The most prevalent of these programs is Asus Probe. Most other programs don't throw an error message, but instead simply forgo creating an icon if they can't do it instantly. Both behaviors are insufficient, as we know.

This problem can be solved with Startup Delayer (see below) and by other means of delaying the startup. One of the simplest is to enable a splash screen like described here:

2006-09-14 – Eric-Jan Damen writes that his problem with the Asus Probe systray icon appeared after he removed the check mark to "show up on next execution" in the splash screen. The delay caused by the splash screen may be enough to make it work.

To re-enable the splash screen for Asus Probe, after you've already disabled it, click on AsusProbeShowSplashScreen.reg, confirm as often as needed, then log off and log on again to test it. (Works only for Asus Probe, other programs have their settings at a different location in the registry or elsewhere.)

If that doesn't solve the problem and if you want to do it yourself, you can do it as follows.

Write a little program in Visual Basic Script that delays the start. Create a text file (File, New, Text file, or just open an Editor) and copy the following two lines into it:

Wscript.Sleep 240000 ' 4 minutes

WScript.CreateObject("WScript.Shell").Run """C:\Program Files\Asus\Probe\AsusProb.exe""", 2

The delay time is in milliseconds, 240,000 in the example. Everything to the right of the apostroph (') is only a comment, has no function, and is not required. To solve the problem here, a delay of 30 to 60 seconds suffices, but if you also have the problem that a regulated fan triggers an alarm when cold-started, 4 to 8 minutes may be required.

Save the file under the name DelayedStartup.vbs into the folder where the AsusProb.exe file resides. If the path is different from the one in the second line, change it accordingly. Actually, the file can be anywhere else, if you like, if only you enter its path into the registry as described below.

Test it. Close Asus Probe, then double-click on the VBS file in Windows Explorer, but double-click only once. There is no apparent reaction and no window opening. You have to wait for Asus Probe to appear after the given time. If you're in a hurry, you can shorten the time to a few seconds for the test, then change it back after the test.

Open regedit (Start, Run..., regedit) and change the following value.

HKEY_LOCAL_MACHINE
 \SOFTWARE
  \Microsoft
   \Windows
    \CurrentVersion
     \Run
"ASUS Probe"="C:\Program Files\ASUS\Probe\AsusProb.exe"

Double-click on "ASUS Probe" on the right side and change the value to read:

"ASUS Probe"="C:\Program Files\ASUS\Probe\DelayedStart.vbs"

The path given in the above example may not be the same as on your computer. Adapt it accordingly.

Log off and log on again to test the change. Asus Probe should appear after 4 minutes or after whatever time you entered.

If you want to use this program to start several programs delayed, use the following example.

Set WsShell = WScript.CreateObject("WScript.Shell")

Wscript.Sleep 240000 ' 4 minutes

WsShell.Run """C:\Program Files\Asus\Probe\AsusProb.exe""", 2

Wscript.Sleep 20000 ' 20 seconds

WsShell.Run """put the path to the next program here"""

Repeat the last two lines as needed.

Note that some programs may reinstate the original situation when they are installed, reinstalled, or updated. Then you have to make the changes to the registry again.

User ClearAsMud remarked that this method can be used for systray icons as well, if you write the program such that it starts the respective programs with delays. Of course, the normal start of the programs would have to be disabled and the delaying program amended whenever a new program with a systray icon is installed or an old one removed.

Other known triggers

Make sure first that you either don't have the following registry values at all or, if you have any of them, that it is set to zero. Deleting the value entirely is easiest and safest. If you want to have all of them removed or set automatically, just click here, then give the permissions when asked.

HKEY_LOCAL_MACHINE
 \SOFTWARE
  \Microsoft
   \Windows
    \CurrentVersion
     \Policies
      \Explorer
"NoTrayItemsDisplay"=dword:00000000

2005-04-05 – Reagan Wiliams reports that in Windows XP (2002) a similar value with the same effect is here (meanwhile confirmed):

HKEY_CURRENT_USER
 \SOFTWARE
  \Microsoft
   \Windows
    \CurrentVersion
     \Policies
      \Explorer
"NoTrayItemsDisplay"=binary:00000000

It is easiest and safest to just delete that value, but if it is all zeros, it should have no effect either. If it is non-zero, that may be the cause of your problem.

2005-10-06 – Christian from Germany wrote that you should make sure you do have the following value, which should exist in a normal installation. Its absence may cause the problem:

HKEY_LOCAL_MACHINE
 \SOFTWARE
  \Microsoft
   \Windows
    \CurrentVersion
     \ShellServiceObjectDelayLoad
"SysTray"="{35CEC8A3-2BE6-11D2-8773-92E220524153}"

Check also the message "2007-04-21 – Karel" below, which also refers to this GUID and shows how to restore a missing InprocServer32.

2005-10-25 – Keith Sagona wrote that the DisableLocalUserRun registry value should be set to 0, not 1. Even a repair installation of Windows XP does not appear to fix this.

HKEY_LOCAL_MACHINE
 \Software
  \Microsoft
   \Windows
    \CurrentVersion
     \Policies
      \Explorer
"DisableLocalUserRun"=dword:00000000

If this value is set to 1, that may be the cause of the problem. Search the registry for other instances of that setting, particularly in HKEY_CURRENT_USER, and set those to 0 also. Then reboot. In many installations this value doesn't even exist. In fact, in many normal installations the entire registry key Explorer does not exist. You can try to back up that key by exporting it, then delete the entire key for a test.

Unfortunately the absence or presence of these keys and values does not guarantee that it all works, and it is not clear whether some of these values work only for some people because they change the logon timing.

Also make sure that you don't have the taskbar set up the wrong way. Make sure that the quickstart icons are on the left side, not on the right, and the running programs area is in the middle of the taskbar. If they are arranged the other way around, then unlock the taskbar and drag the program icon area far to the right, between the quickstart icons and the system tray (system notification area). Then use the sliders to use the available space optimally and relock the taskbar. If this solves your problem, be happy. The problem for which most people visit this web page is much more intractable.

2006-05-12 – Asa Jay Laughton wrote that Norton AntiVirus has a specific setting to hide its systray icon, so if that is the only icon is missing on your computer, please read: How to hide the Norton AntiVirus Corporate Edition icon from the desktop of NAVCE servers or unmanaged clients on Symantec's web site.

2006-05-13 – Poul Eric Madsen wrote that the spyware program regperf.exe caused his Norton AntiVirus icon to disappear, and only spyware removal, followed by a repair installation of the Norton program brought the icon back into the systray. A full Norton reinstallation didn't do the trick, only the repair function worked.

It may be worth noting that various malware attempts to deactivate some well-known antivirus and anti-spyware programs, and that may also affect their systray icons. Also, Symantec/Norton software is generally not recommended, because it causes a variety of other problems.

2006-07-14 – Steve McAfee wrote:

Found another way to lose the volume tray icon to add to your site. Tracked this one down myself as it had me pulling my hair out.

Basically my registry had lost some entries for sound drivers that microsoft installs with XP. Reinstalling the sound card, etc did not help. All sound features seemed to work except I did not get the volume systray icon and in the control panel applet for sound the button to "play" a selected sound was ghosted. In there registry under the following key there are a number of sound drivers which are defined on a fresh XP install:

HKEY_LOCAL_MACHINE
 \SOFTWARE
  \Microsoft
   \Windows NT
    \CurrentVersion
     \Drivers32

The sound tray icon and control panel try to open the driver called "wavemapper" and if it's not there the sound icon does not display. The registry entry is a string entry that looks like this:

wavemapper   REG_SZ   msacm32.drv

Once I added this back it started working. I then exported a .reg file for this drivers32 key from a fairly fresh XP installation and imported that on the system because wavemapper was not the only key I had lost. I have a theory that this somehow happened due to installing and uninstalling codecs, but I'm not sure.

-steve

2006-08-09 – Mikael Tilly wrote to confirm Steve's findings.

2006-08-10 – Hakan Turan also confirmed:

I had the same problem, no volume icon. Only mp3 and wav files were playing fine and no midi file was audible.

Steve McAfee's solution to add:

wavemapper REG_SZ msacm32.drv

to the registry solved my problem.

Later I remembered that I had uninstalled a DivX codec package lately. I think that caused the problem.

2006-09-10 – Tomer confirmed.

2007-03-19 – Bruno Zumella wrote:

[The relevant text on this web page] reminded me that I uninstalled XviD 1.x.0 and then reinstalled the last XviD 1.1.2 on my two computers. Then the registry key was missing.

I recreated the wavemapper REG_SZ entry and all works well know. The sound icon is back.

2007-04-05 – Nalin confirmed.

2007-04-14 – Joe confirmed and mentioned that the problem appeared after he uninstalled the quite popular ffdshow codec.

2007-04-21 – Karel wrote:

One of the points to look for, when the systray is missing or behaving weird, is the presence of the systray inprocserver. For some silly reason, it got lost in my registry. This lead to the following behaviour:

  • Systray was present with the clock symbol.
  • Custom symbols, which come from minimized applications worked also.
  • Taskmanager symbol was OK.
  • Soundsymbol was missing.
  • The USB-Stick symbol did not appear, neither the sound which you get when plugging in.
  • If you enabled "Show Volume Control in Taskbar" from multimedia settings, it was back again, but just for the session. After reboot, still missing.

The following registry update puts the missing entries back in place:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\CLSID\{35CEC8A3-2BE6-11D2-8773-92E220524153}]

@="SysTray"

[HKEY_CLASSES_ROOT\CLSID\{35CEC8A3-2BE6-11D2-8773-92E220524153}\InprocServer32]

@="C:\\WINDOWS\\system32\\stobject.dll"

"ThreadingModel"="Both"

These entries are there in every normal Windows XP with Service Pack 2 installation, so it usually doesn't hurt to re-enter them. If they are already there, nothing will change. You have the following choices:

  • Open the file by clicking on systray_inprocserver.reg and give permission to change.
  • Copy and paste the registry update shown above into a text file with the extension .reg and double-click on it.
  • Enter the keys and values by hand. The @= entries are the "(Standard)" values.

Other possible triggers and workarounds

New information is added at the end of this chapter, so you can read on, but skip to the last paragraphs if you get bored. Thanks to everybody who contributed useful information!

In spite of the apparent effectiveness of the Ostuni workaround, I'm still looking for a way to make the systray icons show up without having to disable or uninstall anything. So the search is still continuing.

Anything that streamlines or delays the boot and logon process appears to help in many cases, though not all, for example thoroughly defragmenting the hard disk with a good defragmenter like PerfectDisk by Raxco. Other examples keep being reported, but none is a real solution. They all work on some computers, but not on others, usually by disabling something and thereby changing the boot timing. Typical culprits are slow, inefficient virus checkers that are set to automatic, like Norton Antivirus 2005 Pro.

First give your user account a password, so the computer cannot rush through a quick auto-logon.

It clearly helps (on at least one of my own computers) if the user waits until he actually logs on. You may enter your password, but do not immediately press return or click on the OK button. For a few thorough tests wait at least a full minute before logging on, or wait until disk activity subsides. You could watch the hard disk light, memorize the rhythm of the bursts, which is usually always the same, and the next time wait until after the last big loading burst. If this helps, it probably does so by getting some system (particularly network) loading processes out of the way.

As mentioned above, disabling the UPnP (Universal Plug and Play) service or the SSDP (Simple Service Discovery Protocol) service or both solves the problem. Microsoft proposes the latter in http://support.microsoft.com/kb/841571/. However, this is not a very good solution because you may want to have these services running. Another proposal is to set the start type of these services to Automatic. They are by default set to Manual, and at least the SSDP service is nonetheless started automatically by other means. Setting the SSDP service to Automatic would likely let this service start earlier, so it doesn't get in the way of other software that is loaded later.

2005-03-10 – Rob Nunn wrote that his Systray icons fail to appear exactly on those days when his antivirus program, NOD32, updates its virus definitions, which it does after first being loaded, i.e. just after system boot. This, of course, uses the network connection. My first thought is that, if one could delay the antivirus update by a minute, the problem might not show up.

2005-04-10 – Stein Bjorndal reported: "... a process named sdmcp.exe crashed on me. After a bit of investigation, this turns out to be a part of the DesktopX application by Stardock (http://www.stardock.com/products/desktopx/), ..." Uninstalling the program didn't work for him either, so he just erased all traces that could be found, including the start of the exe file. That solved his problem.

This has meanwhile been confirmed by two other users, Gary Melady and David Perry. The culprit may be Stardock Central.

2005-05-21 – Daron Brewood wrote: Solved my icon problem in the end by disabling WindowBlinds 4 (I had to as it conflicts with the new Pocket PC Active Sync program) – but it has the side effect of fixing the icon problem, so in my case it looks like it is/was due to WB4.

2005-06-14 – Ansgar Nell sent an intriguing hint, originally written by Guloso on a discussion board—just restart systray.exe, for example by putting a shortcut to it into the startup folder. No need to provide a path, since the program is in the search path. I have meanwhile received an email confirming this, but it doesn't work at all on my own computers. Another of those solutions that work for some, but not for most. I have heard of one case in which systray.exe didn't get loaded at all, and using this method or the one below fixed the problem.

A similar, possibly better method to start systray.exe is through the Run key in the registry. Unfortunately this also doesn't bring any missing icons back on my computers, but if you want to try it nonetheless, the procedure is as follows.

HKEY_LOCAL_MACHINE
 \SOFTWARE
  \Microsoft
   \Windows
    \CurrentVersion
     \Run
"systray"="systray.exe"

Step-by-step instructions:

  1. Click on Start, Run..., type: regedit
  2. Press return
  3. In Registry Editor, navigate the left directory tree to: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
  4. Right click in the right window pane, select New, then String value.
  5. Give the new string value the name: systray
  6. Your new value should now have the name "systray", the type "REG_SZ", and no data. Right click on this new systray value and select: Modify
  7. Enter the value: systray.exe
  8. Click: OK
  9. Close Registry Editor.
  10. Restart your computer.

Another of these hints (thanks to John Erikson) is that emptying the Prefetch folder (C:\WINDOWS\Prefetch in a normal installation) helps. The file Layout.ini is automatically recreated at some later time and is not essential anyway. Just cleaning out the prefetch folder did not solve the problem on my test computers and I also get reports from other users that it doesn't solve the problem there, so it is obviously not a universal solution. I guess that it merely speeds up the logon process a little.

2006-10-23 – WvU wrote that deleting Prefetch\Layout.ini, then defragmenting the hard disk, solves the problem for him. He supposes that the defragmenter has a defect in relation to rearranging the boot files according to Layout.ini.

Yet another hint came from Harold Collins. He used the MSCONFIG utility to disable the Adobe Reader Speed Load, which solved the problem for him. This is apparently yet another way to accelerate the loading process for the other systray icons and may work for some.

www.tech-pro.net provides a tool set named Tech-Pro Utilities Startup (http://www.tech-pro.net/startup.html Version 1.1 as of 2004-11-22), which contains one tool named Startup Manager. You need only the Startup Manager for this particular problem. This program can delay the loading of programs from your Startup menu and allegedly solves the missing systray icon problem.

I have my doubts though, because most of the possibly offending programs aren't started from the Startup menu at all, mine is empty, for example. I guess we need something to delay the loading from the Run key in the registry. But if you try any of these programs, please let me know your results.

2005-01-26 – Found a program named SysTrayHack at http://desktopian.org/addons/systray2kfix.zip and tested it. It claims to solve the problem of not appearing systray icons when another shell is used in place of Windows Explorer. I tried it, although I do use Windows Explorer. As expected, it didn't solve the problem for me, but I have received 2 confirmations that it worked for other users.

2005-02-16 – Lutz-R. Frank wrote:

I could work around the issue using PS Tray Factory. It allows to restore all the tray icons after a crash of explorer. Just testing it but it looks very promising - and offers some additional benefits as minimizing any application to the tray. See www.pssoftlab.com for more details.

Thanks, Lutz! This is indeed promising. The program is try-before-you-buy shareware and costs $24.95. I haven't tested it yet and will wait for independent confirmation.

2005-02-17 – Cliff Cawley of r2 Studios contacted me and recommended his freeware program Startup Delayer, available from http://www.r2.com.au/software.php?show=startdelay. 2005-04-01 - Bruce Sylvester reports that he tried Startup Delayer after the Ostuni Workaround hadn't helped. His statement: "Voila! Works perfectly and problem gone." 2005-10-12 – I finally got to testing it myself and can recommend it with some reservations. The program itself works very well and does exactly what it should do—delay starting the automatically started programs. Unfortunately it does not solve the entire problem on my computer. Some of the missing or disappearing icons will still not appear if delayed, or they will never appear when delayed. Examples are the Bluetooth icon and other icons that depend on it, like that of the Nokia PC Suite. Startup Delayer seems to work well with the SoundMan icon though (the speaker symbol to control the sound volume) and with several others, like Asus Probe. It also appears to have a perfect installer and uninstaller, so there is apparently no risk in trying.

2005-05-16 – IceBear wrote:

This solution might not be comfortable when the problems with missing icons appear at every boot, but it's very useful if it only happens sometimes. The 12ghostTray has a function that can restart just the systray. When it does, all icons become visible as they should. http://12ghosts.com/ghosts/tray.htm

2005-07-20 – Dan Berger wrote:

I found another rather simple way of correcting the missing notification tray icon problem. [...]

Since it appears that load order or load timing may be responsible, I simply moved the command to load the problem program from its registry key location to the startup menu. It worked.

I imagine that just moving things around among the six registry load keys and the startup folder will solve most problems of this sort. Doesn't solve the "why" question, but at least it seems to work.

2005-10-11 – Vivek Tanna outlined the following procedure:

Usually to get back the missing icons one can use the following steps to kill and restart Windows Explorer:

  1. Press Ctrl + Shift + Esc to get Task Manager
  2. In Processes click on explorer.exe and click on the End task button
  3. Select the command File, Run and type in: explorer (or alternatively click on the Applications tab, then on the lower right button, New task ... and enter explorer there)

This brings back the missing icons 99% of the time.

Unfortunately I cannot confirm this. Sometimes it works for me, but usually it doesn't. Some icons do not return, even if I repeat the procedure. But try it anyway, perhaps it works well enough for you.

2005-10-21 – Anastasia wrote that one method of last resort is to give up the user profile, create an entirely new user, and copy as much data and settings as possible from the old user to the new. She then wrote:

In any case, I must say that copying "My Documents" from one administrator account to another was very quick. [...] If they see tray icons if they logon in "guest account" [...], then create a new user all together and cut-paste [My Documents]. Unfortunately they will also have to re-do all the little tweaks on the way they want windows to look (e.g. start menu items, internet explorer buttons etc), but nevertheless it took me about 20 mins to configure everything the way I wanted it. Important to note if you do this method: copy outlook .pst on my (new) documents and import to outlook. Copy also the favourites folder before you delete the account (these are the only two actions I made when switching users, as all my programs are configured to be used for all users).

A remaining problem is any software that had been installed for this user only, because that would have to be reinstalled. But if all else fails, this is still a way out.

2006-01-16 – Larry Bowman wrote about a last resort workaround. You can create shortcuts to the programs that belong to the missing icons. For example, you can create a shortcut to sndvol32, so you can always get the volume control, albeit the big one. Or you can right-click the Sounds and Multimedia applet in Control Panel and create a shortcut to that, so you can get your volume icon back with a few more mouse clicks (disable the icon, apply, enable the icon, OK). With similar shortcuts you may be able work around all or most missing icons. Another example for such a shortcut is this, which you could call Hardware Unplug:

rundll32.exe shell32.dll,Control_RunDLL hotplug.dll

2006-09-28 – Bart van de Beek wrote:

In Windows XP Professional you can delay the automatic windows logon by doing the following, see if that helps:

Start -> Run... -> type: gpedit.msc -> press the enter key -> navigate to:
Local Computer Policy -> Computer configuration -> Administrative Templates -> System -> Logon

Enable: Always wait for the network at computer startup and logon

Unfortunately on many computers this delay is not enough to prevent the problem, but, like many other workarounds, it seems to solve the problem on some.

2006-11-22 – Lawrence LaCroix wrote:

I tried most of your suggestions and some would restore one icon, but then another would disappear. Then quite by accident I stumbled on a solution that seems to work 100% (at least for the time being).

I was looking for the menu to hide network UPnP devices as suggested on your page and I found that in Network Connections/Advanced/Advanced Settings, my 1394 connection (which is disabled) was my first device in priority order. So I moved the local network to the top of the priority list and when I rebooted the next time it seemed to cure the problem totally. All of my tray icons have returned.

2006-11-28 – Lawrence LaCroix wrote about an interesting point again:

In the taskbar properties menu, there is an option to control the systray icon properties, like "show always" "hide when inactive" and "hide always". Below the active icons is a cache of recently used systray icons that for some reason Windows likes to remember. Over time this list can get longer and longer if you have installed and removed a lot of applications that have systray icons. In this storage area, there are also sometimes "folder" icons. These can represent temporary information that was in the tray that never had an icon, or it can represent deleted program icons for which Windows no longer has the original icon available to display, so instead Windows simply displays the standard Windows folder icon with a description.

When I use the registry fix with the two keys that are deleted (IconStreams and PastIconsStream), all of the recognized icons are deleted, but I still had at least 20 of the "folder icons" described above that were not removed. Even after rebooting these were still there, and even after rebooting I had some current systray icons that were still missing from the notification area. When I used the longer method to use Task Manager to shut down Windows Explorer and restart it in the current session (Run: explorer), all of the "folder icons" disappeared and my systray icons started working properly again. I am fairly sure that this missing systray icon issue has something to do with how Windows reads that list of systray icons, current & recently used, held in this taskbar properties file.

Instead of steps 1 to 4 below, you can also run systray_cleanup.reg or another of the related registry fix files described in the chapter "The most successful workarounds" above. They all remove the two registry keys.

  1. Click Start > Run > Regedit
  2. Navigate to
    HKEY_CURRENT_USER
     \Software
      \Microsoft
       \Windows
        \CurrentVersion
         \Explorer
          \TrayNotify
  3. Delete the IconStreams and PastIconsStream values.
  4. Close Regedit.
  5. Open Task Manager, click Processes tab, click explorer.exe, then click End Process.
  6. Still in Task Manager, click File, click New Task, type explorer, then click OK.

I think that the other fix [see above] that rearranges the default network search order worked on one of my computers because it changed the order that the icons were loaded, again this points toward some quirk or glitch in that icon storage information. This fix also has some interesting side effects, on my home computer the systray now loads about twice as fast since I moved the 1394 network adapter down the list and put my local network at the top. Now figure that one out!

2006-12-13 – Pete Green wrote:

Simply using the 'Optimize System' option within Microsoft's Bootvis program does the trick for me.  Bear in mind though that if, after running it, new programs are installed that load at startup, it may be necessary to re-run Bootvis.

Whilst Bootvis is apparently no longer available for download from the Microsoft site, a search on Google will reveal several sources.

Windows XP has a similar automatic function already built in, which is enabled by default, so it is a question why that didn't already solve the problem, but Pete mentioned that, even in a test with an earlier disk image, it was only Bootvis that solved the problem in his installation.

2007-04-29 – Bob Malcolm confirmed that the Bootvis optimization function solved the problem for him too.

2007-02-17 – Paul Santangelo wrote that he had one particular case of the disappearing systray icons where he found that something was wrong with the .NET 2.0 Framework installation. Calling up the installer again and electing to repair the .NET installation fixed it permanently.

2007-05-11 – John Smallridge wrote:

Problem was missing systray icons, specifically printer icons (and sometimes others) after Avast anti-virus was installed. Computer was heavily loaded with software, so tried extra memory, which improved performance but didn't cure problem. Kicked out some unnecessary startups, which interestingly did not have any effect either.

Uninstalled Avast and installed AVG to see what happened, and icons re-appeared.

Uninstalled AVG and again installed Avast, icons gone again! (Processes were, however, running, when I checked).

Investigated registry with no joy and lots of other possibles until I hit on it.

Right clicking avast gives access to program settings and next level "troubleshooting", where you can delay the loading of avast services. This fixed the problem after a re-boot, so in this case at least it seems to indicate that it is purely the systray not being able to keep up with the demand or maybe just a question of timing. My guess is that the demand of the loading services limits the resources available to the systray load.

Thanks, John, for this interesting observation! This also indicates that my earlier suspicion, that systray.exe loads too late, is wrong, and that a more likely cause is some kind of overload on systray.exe.

2007-05-13 – TUPOLEV wrote from France that deleting the following registry value solved the problem for him:

HKEY_LOCAL_MACHINE
 \SOFTWARE
  \Microsoft
   \Windows
    \CurrentVersion
     \ShellServiceObjectDelayLoad
"UPnPMonitor"="{e57ce738-33e8-4c51-8354-bb4de9d215d1}"

If you don't like to delete the value altogether, you can just make it temporarily unusable for a test, for example by adding DISABLED in front of the opening brace of the string value.

2007-06-14 – Brian Burdett wrote:

I tried all of the different suggestions with various results but this worked 100%. I downloaded the freeware Startup Delayer program from: http://www.snapfiles.com/get/startdelay.html [Homepage: http://www.r2.com.au/software.php?show=startdelay]

Startup Delayer allows you to specify which programs to start first and which ones to delay. You can set a custom delay for each one, even drag the visual display graph which shows you exactly how your programs are starting and allows you to easily modify the order or adjust delay times.

It appears that windows does not load the icons if several programs try to start at once. I'm loading eleven programs at start up in eight seconds in the order I want them to load with no problem now.

2007-06-21 – Jali Pajula wrote from Finland:

I just found out that the reason for my disappearing systray icons is ZoneAlarm Security Suite.

I can reproduce the situation _every time_ when I install ZA SS and the problem diappears every time when I uninstall the program.

This is kinda mystery to me, because I cannot make this happen with my other PC, also ZA Security Suite installed.

But as said, with this computer I can make it happen every time.

Closing remarks

Cited emails can be edited and abridged to fit this web page.

Thanks to everybody who wrote! If you have any further relevant information or found one of the above hints to work, please click on Add new comment or on reply to reply to an existing comment (below, account required; if you don't have an account yet, create one first).

Please check also the result statistics and report your results there.

Comments, vote, attachment

Result statistics—please report your results.

AttachmentSize
shell32patch.zip - Patch by nars. Some people had problems downloading it from the original site.165.22 KB

New Version of Shell32.dll [6.0.2900.6018]

Wed, 2010-08-04 16:33 by mcrealize

Dear Forum,

Microsoft appears to have updated the Shell32.dll file again. The current version is 6.0.2900.6018. Does anyone know what the offset fixes are on this file?

System Tray icons Disappearing

Thu, 2009-01-22 23:19 by daroland

I saw your site and ran systray registry cleaner you listed. It worked immediately. I am v ery impressed. You guys are Wily E. Coyote "Super" geniuses.

Workaround

Sat, 2009-01-17 01:40 by depassp

I have implemented tasmanian's workaround using MinGW. Feel free to use it here:
http://qlink.queensu.ca/~4pd5/fix.systray.icons.zip

Great!

Sat, 2009-01-17 14:16 by admin

I'll gladly offer it right here. Need to test it first though. A few questions remain open:

  1. How does it work? Are you actually patching shell32.dll or do you use a different workaround?
  2. What's the difference between the "Now" and the "60s" versions? Why did you make two?
  3. What can one do if it goes wrong? Any simple way to roll back?

Many people will rightly be very wary before running an unknown program on their computer. Some reassurance is needed, and more information would certainly help.

I am enthusiastic about this solution though, because it has the promise of solving the problem at its root.

More info

Sat, 2009-01-17 16:49 by depassp

Well first of all thanks should go to tasmanian for finding this "bug", although it's more of a bad design decision than a bug. I'd appreciate some testing. It works for me on Windows XP Pro SP3 (x32). It'd be good to try on 2000 / Vista32 / XP64 / Vista64.

Here are some answers to your questions:

1. It is just a straight up implementation of the workaround code tasmanian posted.

2. The 60s version sends the message after 60 seconds of being run. This one is more useful to be run at system startup. As tasmanian posted, by default shell32 only allows for _4 seconds_ for programs to respond to the "Shell_NotifyIcon" call. As the computer is starting, with many many programs starting at the same time, this is not enough time. So if the shell does not get a response after 4 seconds, it thinks the program is hung, and the system tray icon doesn't get created. This is why the solutions which delay startup of certain programs seem to work.

The idea being after 60 seconds hopefully the system is completely started and idle, then this program sends 'TaskbarCreated' to all programs, after which they will hopefully recreate their system tray icons.

The "now" version sends the message right now :) Useful if somehow icons have "disappeared" and you want them back, right now.

3. There's really nothing that can go wrong. This program just sends a system-wide call. It's not a patch, there's nothing to roll back. When you kill "explorer.exe" then restart it, notice how the taskbar and system tray are re-created, as well as system tray icons? This program just uses the same system call, 'TaskbarCreated'.

I understand people will be wary, which is why I included full source code and a README. I also modified tasmanian's code so information is printed to the console. I don't like when programs just "run" without showing me what they're doing.

This does solve the problem at its root (at least for me :), but it's not a "real" solution, more of a workaround. Also it will only work for programs that actually recognize that the 'TaskbarCreated' call means they should recreate their system tray icon.

As tasmanian posted, the real solution is to patch shell32.dll permanently, so it waits longer for programs to respond to the initial "Shell_NotifyIcon". But this would have to be done differently for every patch level/service pack of XP/Vista/2000. More of a PITA. I could probably do this, but the workaround was much easier.

It works for me, so I hope it helps others.

Explorer crashes

Sat, 2009-01-17 21:01 by admin

Thanks a lot for your effort and for the good information! This is really a fine thing, if it works.

However, on Windows XP SP3, when I double-click the exe file in Windows Explorer, Windows Explorer crashes. That can't be good. Something is wrong.

Weird

Sun, 2009-01-18 00:53 by depassp

Hmm that's weird... It works fine on both my XP SP3 desktops as well as my XP SP3 laptop.

Windows Explorer always crashes

Sun, 2009-01-18 12:04 by admin

I've just tested it several times and double-clicked the exe file. This always reliably crashes Windows Explorer on this computer. Sometimes the one and only running instance of Windows Explorer just shuts down and is then restarted automatically by the system, which shouldn't happen. And sometimes the same thing happened, but I also got a dialog box asking me whether I want to send the Windows Explorer crash information to Microsoft.

I just tried it again to get at the crash dump file, but this seems to be impossible now. I've seen the crash dialog a few times, but then never again. Now Windows Explorer always crashes and disappears silently and gets restarted automatically. Any open Explorer windows disappear for good; all desktop icons and the task bar disappear, then reappear.

One possible explanation for the now missing crash dialog is that Windows somehow keeps track of such crashes and offers the dialog only a limited number of times.

Has anybody else tested one of the two exe files? What was your result?

StartDelay

Mon, 2008-11-24 23:58 by dhaff

I am a system builder and hve been installing and reinstalling Win CP for at least five years and have never run across this problem guy before! Seems I have now joined the club.

Uninstalling UPNP and almost nothing worked eccept StartDelay! I run Norton System Works and timed it to start last and put three seconds between all the others. Start Delay disables nVidia icon but i can live without it! My only hope beyond this was to reformat and try again.

Saved by the bell or saved by the delay? Hope this helps others.

D Haff

SIMAUD's picture

Otsuni rulez!

Sat, 2008-11-15 04:22 by SIMAUD

This site rules as well.
Thanks guys!

Ostuni my man!

Tue, 2008-08-12 15:49 by doonser

Okay, I admit, I only just applied the Ostuni solution, so tomorrow it may all fall apart. Anyway, here's my result: my icons returned and my computer starts up 150% faster. (Missing icons included Volume, Hardware Eject, and occasionally Maxtor Manger for my external backup drive). Yeah baby! Next stop is Bootvis!

Thanks tons.

s_m_taheri's picture

Thank you Ostuni!

Fri, 2008-11-14 12:38 by s_m_taheri

The Ostuni Workaround works fine on my pc and solved my old problem.

Good to hear

Tue, 2008-08-12 17:43 by admin

Thanks for reporting back. Yes, the Ostuni idea is still one of the easiest and best.

another crazy solution to the crazy list

Mon, 2008-07-14 23:50 by Zeta27

PLAY WARCRAFT III !!!!!

That's the new crazy solution, in addition to turn off the computer for three hours.

I still have the icon problem each time I restart the computer, but whenever I open and exit that game, everything is there :D

It must be something to do with fullscreen applications, my icon problem started when alt+tabbing heavily a full screen game called Ragnarok. first I lost all my icons a couple of times but they returned when restarting the computer, and then one day it became permanent. I recovered some with the methods up there, but not all.

Now every time I see an icon missing I say to myself: I'ts DOTA time!!!

LOL

Tue, 2008-07-15 14:02 by admin

Great way to clean up things! Would World of Warcraft also do it? Or at least Starcraft? How about SupCom? Crysis?

I wonder if this could be hammered into an automatic workaround. We just need to start and close something like Warcraft a minute after logging on. (:-) Could someone please write us a NanoWarcraft?

I don't believe that the game caused the problem. This problem appears on its own over time, as you add programs, particularly services or other programs that start themselves or a helper systray icon after logon.

It's too much of a

Fri, 2008-07-18 15:05 by Zeta27

It's too much of a coincidense that my entire desktop icons become replaced by a single random icon just after playing Ragnarok (this happened four times) but never any of the... like... 10 other full screen games I play.

Killing the icons

Fri, 2008-07-18 15:32 by admin

Killing the icons is one thing, but having the icons not appear after booting is quite another.

a fix made the problem worse

Sat, 2008-07-12 01:00 by Zeta27

First of all, despite the outcome, thanks a lot to the writer for this excellent and complete article!

I could not tell if it was the systray.reg or the systray_undo.reg but after running them and rebooting the default action when double clicking a folder is "search" inside the folder (with the cute dog) instead of "open" so I have to right click and select open every time I want to open a folder which is really annoying.

I tried going to the folder's settings->File types and advanced button for "Folder" and selectin open as a default (the default setting is no one selected as default, I confirmed this in other computer) but nothing seems to work

The fixes solved the problem for some icons but the folder icon is still missing.

Anastasia's solution DOES fix the problem (creating a new user, thanks there) but here's a noob question: can I give to the new account administrator privileges? that's important for me to run some softwares.

I can bare the folder missing icon, but please PLEASE someone help me to change the default double click action of a folder!

I would REALLY appreciate that.

System Restore

Sat, 2008-07-12 08:05 by admin

When anything like that happens, your first solution is always System Restore to a restore point before the problem first appeared.

Note that the operating system will be completely reset to that earlier state, so you may lose installed programs and settings changes since then, but you will normally not lose data. However, it can't hurt to have a backup. The procedure will also undo your systray fix and you'll have to redo it.

The registry files you applied do not touch the folder settings. They cannot cause such problems. The cause was something else.

You can give any user administrator status. Log in as a user who already has administrator rights, then change your new user to an administrator.

Some updates on this

Wed, 2008-05-21 18:56 by tasmanian

After some serious research I discovered that the missing icons are caused by a tiny bug in the Windows function Shell_NotifyIcon in Shell32.dll. All Windows applications must call this function to create or modify tray icons.
M$ knows about this issue, they even mention it in the MSDN documentation of this function (see http://msdn.microsoft.com/en-us/library/bb762159.aspx - the part about handling Shell_NotifyIcon failure)

Now a little more detail. This is a decompiled listing of the relevant part of this function:

Exported fn(): Shell_NotifyIconW - Ord:016Fh
:7E6D61F5 8BFF                    mov edi, edi
:7E6D61F7 55                      push ebp
:7E6D61F8 8BEC                    mov ebp, esp
...
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:7E6FC9EB(U)
|
:7E6D62C6 8D853CFCFFFF            lea eax, dword ptr [ebp+FFFFFC3C]
:7E6D62CC 898528FCFFFF            mov dword ptr [ebp+FFFFFC28], eax
:7E6D62D2 8D8534FCFFFF            lea eax, dword ptr [ebp+FFFFFC34]
:7E6D62D8 50                      push eax
:7E6D62D9 68A00F0000              push 00000FA0 << HERE! 4 sec timeout
:7E6D62DE 6A03                    push 00000003 << HERE!
*                                   flags: SMTO_BLOCK | SMTO_ABORTIFHUNG 
:7E6D62E0 8D8520FCFFFF            lea eax, dword ptr [ebp+FFFFFC20]
:7E6D62E6 50                      push eax
:7E6D62E7 8B852CFCFFFF            mov eax, dword ptr [ebp+FFFFFC2C]
:7E6D62ED FF7004                  push [eax+04]
:7E6D62F0 C7853CFCFFFF23347534    mov dword ptr [ebp+FFFFFC3C], 34753423
:7E6D62FA 6A4A                    push 0000004A
:7E6D62FC FFB530FCFFFF            push dword ptr [ebp+FFFFFC30]
:7E6D6302 89B540FCFFFF            mov dword ptr [ebp+FFFFFC40], esi
:7E6D6308 C78520FCFFFF01000000    mov dword ptr [ebp+FFFFFC20], 00000001
:7E6D6312 C78524FCFFFFC0030000    mov dword ptr [ebp+FFFFFC24], 000003C0

* Reference To: USER32.SendMessageTimeoutW, Ord:023Fh

A call to the function SendMessageTimeout, which basically informs the thread responsible for the systray that it has work to do. There are two problematic parameters to that function:
first the timeout which is set to 4000 ms - too short during startup and the flag SMTO_ABORTIFHUNG which causes the call to immediately return an error if the receiving thread SEEMS to be hanging. This flag is the real killer here because during startup this thread is so busy it sometimes just appears to be hanging. This also explains why this issue is so timing related.

I found two ways to cope with this problem:

The first one is a workaround. In case explorer.exe crashes and is restarted MS implemented the window message 'TaskbarCreated ' to indicate all applications to reregister their tray icons.
This C-code

#include "windows.h"

int main()
{
	static UINT WM_TASKBARCREATED;
	Sleep(60000);
	WM_TASKBARCREATED=RegisterWindowMessage(TEXT("TaskbarCreated"));
	SendMessage(HWND_BROADCAST, WM_TASKBARCREATED, 0, 0);
	return 0;
}

sends this message to all running applications after a delay of 1 minute. Compile it and place it in your autostart folder and the icons of all programs which understand this message should reappear. Note that not all programs do understand the message and some programs do not like it if they are told to register an icon which already exists (sandboxie comes in mind here).

The second solution is to exterminate the root of the problem and patch shell32.dll by setting the timeout to 60000 ms and removing the SMTO_ABORTIFHUNG flag.
Copy shell32.dll and for

shell32.dll version 6.0.2900.3241 (xpsp_sp2_qfe.071025-1245)
use a hex editor to change 
0xA00F to 0x60EA at offset 0x656DA and
0x03 to 0x01 at offset 0x656DF

Be sure that your dll version matches exactly or the offsets will probably be false (use a decompiler like W32Dasm to find the correct offsets).
The drawback of this solution is that it is really tricky to replace the original with patched shell32.dll and that this patch will only last until M$ decides to issue another update for this file.

I hope you find this information useful
mfG. Stef

Perfect solution, difficult to apply

Sat, 2008-08-23 09:59 by admin

[Don't miss the 2008-08-23 update further down in this comment.]

Thanks a million for this detailed analysis! I wish more people found the time to analyze problems as thoroughly as you did it.

I've and looked at shell32.dll, but it was already updated, probably by Service Pack 3 or maybe by some patch. My current version is 6.0.2900.5512.

I've just applied the patch anyway, after finding the only occurrence of 0xA004, closely followed by 0x03, and it seems to work, but the patch is difficult to apply and, as you say, will last only until the next automatic update from Microsoft. shell32.dll has been updated by Microsoft very frequently, so I expect the next update very soon.

A problem while patching was that Windows immediately undid any change I made to the DLL. I had to locate the first source, found it in ServicePackFiles\i386, changed it there, then made sure it percolated down the chain until it ended up in the system32 folder (and in system32\dllcache).

It seems that this is not the best way to go for most users, who may not be into patching system files with a hex editor, except, of course, if anybody could devise a way to make this patching more automatic and easier to apply.

Since your other proposal doesn't solve the problem entirely either, we are still looking for a good, convenient solution that many other users could download and install. Any ideas?

In fact, I tried to compile your proposed code, but since I'm not a C++ programmer, I may have made a mistake. Depending on what type of project I chose in Visual Studio 2008, the resulting program either crashed explorer.exe or closed it. I think patching shell32.dll is the way to go.

[Update 2008-08-23] After running the patched shell32.dll until now on my main computer, I can state that since the patch I've never missed any systray icon. I would dearly like to make an automated patcher, but the biggest problem is Windows' DLL protection that prevents any easy swapping of the DLL. An additional problem is that I've already found three different places from which the unpatched shell32.dll is automatically and quickly reinstated by Windows. Any good thought and any help is very welcome.

A possible way to go would be to search the Windows folder and all of its subfolders for shell32.dll and program a replacement with the patched version for the next reboot as described in Cannot delete file or folder, chapter "Rename or move during next boot". Of course the unpatched version should be kept too, and, if possible, a method devised that would allow to undo the procedure if the computer fails to boot. A boot failure could happen with future versions of shell32.dll or when the patching procedure is interrupted.

Re: Very interesting

Wed, 2008-07-16 17:45 by tasmanian

Thanks for your reply,

I have been using the shell32.dll patch for about 2 months now and did not notice any negative side effects.

You are correct, using a hexeditor to search for 0x68A00F00006A03 and - only if there is exactly one occurrence - replace it with 0x6860EA00006A01 should do the trick for all versions of shell32.dll.

Concerning the replacement of the original dll with the patched one:

Yes, one has to get past Windows System File Check a.k.a. sfc. Imho the best way to do this is to disable sfc (temporarily or permanently). Instructions on how to do this can be found somewhere else on the net (unfortunately I seem to have misplaced my bookmarks) If you choose to disable sfc only temporarily or not at all keep in mind that it will restore the original dll version at the first chance it gets - of course without any user notification.

Also there is at least 1 identical copy of shell32.dll in the system32\dllcache folder and there are likely to be more.

It may be a good idea to use a tool like resource hacker to change the version number of the modified dll to see if the patch worked in explorer.

Still this is way too complicated for the average Windows user and I don't see a way to automate the patching :-/

Concerning the source code:

I was totally unaware that these 4 lines of code are able to crash explorer.exe (and I really doubt that you have done anything during project creation to achieve this). I just tested it myself using VS 2008 and a Win32 Console Application - the resulting program left explorer.exe alone but - as expected - crashed sandboxie instead. Still not very convenient.

Yet we are not using the WM_TASKBARCREATED message as MS intended. So theoretically anything could happen ;-)

Anyway this code is just a demonstration of concept - a program which sends this message to a configurable list of processes would be much more useful and userfriendly, but that's beyond my programming skills.

The amount of interest in this seems to be limited anyway - I tried to bring this up at the sysinternals forums but I didn't get too much attention (or any at all for that matter).

Kind regards

Limited interest

Wed, 2008-07-16 18:43 by admin

Sometimes I think people are like rats—they love garbage. grin Give them something perfect on a silver platter, and they will reject it.

Icons are back

Sun, 2008-04-20 08:31 by fazerking

I have tried the workaround of tuning SSDP to automatic. Amazing, it works. Many Thanks!

Glad it worked

Sun, 2008-04-20 09:06 by admin

Just be aware that anything that changes the boot and logon timing can work, but any other change can make the problem reappear.

If that happens, check the very successful workarounds first. Check the result statistics.

Ostuni's solution worked!

Sun, 2008-03-02 05:54 by bournex

I had gradually noticed icons disappear from my system tray in the last year or so. The first victim being the volume icon, of course. Later on, more icons disappeared. Meanwhile, my temporary solution was to kill and restart explorer.exe, which would reveal the missing icons but only to see them disappear again after booting.
Today I got fed up after noticing two more icons disappear from the system tray. I was determine to find a solution. I looked for one everywhere, eventually finding your article. So let me say: well done you on putting all this information together. It's been quite helpful.

I noticed whilst reading your article that someone from Microsoft (James Covington) has a solution that also involves killing and restarting explorer.exe but he took it a bit further with the registry. I didn't try this as I felt Ostuni's workaround seemed far simpler and worked best for me. Thanks! :-)

Thanks for reporting back!

Sun, 2008-03-02 06:09 by admin

It's always good to know what worked.

I suspect that the main points in James Covington's workaround are:

  • Navigate in the registry to
    HKEY_CURRENT_USER
     \Software
      \Microsoft
       \Windows
        \CurrentVersion
         \Explorer
          \TrayNotify
  • Delete the IconStreams and PastIconStreams values.

systray_cleanup.reg already does this quickly, if you want to try it, and so do the stronger .reg files mentioned near the top of the main article.

These don't seem to cut it for everyone though.

tweakUI?

Tue, 2007-12-25 21:27 by funeralclown4hire (not verified)

Has anyone tried it? I Had some issues with a crazy Firefox addon that was "not so elegantly" minimizing the browser into the tray. After a half day of browsing, all Tray Icons (except clock)disappeared. When I rebooted and restored my firefox session, about 20 separate instances of firefox flooded in. Seems everytime I closed my browser it would just minimize into my phantom tray. The "hide inactive icons" in the taskbar properties choices was whited out.

TweakUI, one of M$ Systernals tools, allows a couple dozen "one click" registry tweaks including a checkbox for "show taskbar notification icons" in the "Taskbar and Start Menu" dropdown.

Here's the link for all the power toys offered. Methinks you can scroll down to find the download for TweakUI, but the other tools on the page are pretty useful as well. Just don't get click happy like me.

http://www.microsoft.com/windowsxp/downloads/powertoys/xppowertoys.mspx

Dunno if this fix was just a flook for my relatively lightweight system. Would like to find out if it's a flook for anyone else.

I got mine to work

Thu, 2007-12-20 19:38 by warpwar (not verified)

I did the same thing as - J. L. Heath

I solved the problem by 1st doing the Ostuni workaround (hiding UPnP) and then clicking on the first Diez automatic link, and then rebooted.

when I hid UPnP, most, but not all of my icons returned, the first diez link restored the rest.

Volume Icon Missing in Windows XP Systray

Sat, 2007-11-17 19:43 by daveolson (not verified)

I saw that Zone Alarm was mentioned as a possible problem. When I shut down Zone Alarm the missing icons in my systray reappeared. At reboot they were gone again. This happened every time I tried it. Checking the version I saw that I was running Zone Alarm 6.5.737.000 from 2006. Kind of old!
I downloaded the latest free version, (I'm only running the free version firewall, not the pay "pro" version or the Suite), and installed it. Problem solved. The missing volume icon is now there, and my Intel Active Monitor for the Intel motherboard now shows up again.

Thanks to Jali Pajula for the suggestion, it fixed the problem!

Great, thanks!

Sat, 2007-11-17 21:39 by admin

Another problem solved. Thanks for reporting your solution.

The lingering suspicion is always there that Zone Alarm, or whatever, isn't really the cause and your version change merely changed something in the startup timing, but this is extremely difficult to find out for sure.

Ostuni workaround

Wed, 2007-10-24 12:27 by Oom John (not verified)

Hi,

How did mr. Ostuni found out this splendid solution? Amazing that Microsoft doesn't pay attention to this icon problem. So many users are having troubles with the systray. For me, trying almost one year to find out, the Ostuni workaround made an instant repair. But, nonetheless there has to come a fix from Microsoft. Hiding uPnP seems to me rather silly for a OS to let work a normal systray.

Second, when I use my notebook at home in Holland I had no systray problem. May be he (or she, my notebook) finds instantly all other computers (wireless) and shows them with icons (and content), so he finds them very fast. Here in Spain they're absent and the search goes on. Now having disabled this search (uPnP) all systray icons appear in the right way.

Thanks again to mr. Ostuni and of course for you. Your 'story' is not only clear but also very good to follow for non technical people (like me).

Thanks for reporting back!

Wed, 2007-10-24 14:22 by admin

It's always good to know what worked.

If you like, and haven't done so already, you can report your result for the statistics.

This site ROCKS!

Tue, 2007-11-20 12:08 by poison dwaarf (not verified)

Being over eager I tried the Ostuni work around (disable Upnp) and the systray_cleanup.reg. One reboot later and VOILA! A full systray!
Keep up the tremendously good work!

I know everything there is to know about computers... you switch them on, they drive you nuts, you switch them off. What more is there to know?

{Laugh}

Tue, 2007-11-20 13:19 by admin

You are so right!

Thanks for reporting your success.

missing systray icons

Thu, 2007-11-22 18:20 by hotblooded (not verified)

I've had a problem with icons not loading in the Systray for some time and managed to find the cause in the services.msc area. My AVG Anti-Virus and AVG Anti-Spy were 2
icons affected along with the speaker icon and none of them would show up after having being installed for quite awhile. The main problem was Intel Desktop Utilities
Service which was set to auto and the service started. I stopped the service and set for manual and the taskbar/systray icons all popped up on the next reboot. I have had
similar problems in the past also with other missing systray icons and slow windows load with the following services. SSDP Discovery Service, Universal Plug and Play
Device Host, and Windows Image Acquisition Services were the main culprits which caused similar systray problems and slow loading. If not used often set all these to
a minimum of manual and stop the services or even disable them if not needed at all and see if you notice any improvement to Windows starting speed or missing systray icons. Good luck.

Thanks

Tue, 2009-07-07 10:29 by angelineray@gma...

Great tutorial.Thanks for making it so clear.

Thanks

Thu, 2007-11-22 20:38 by admin

Thanks for reporting this.

I'd be hesitant to call it The Cause, as we've seen too many different causes already, but it is apparently one possible trigger.

As we now know since the shell32.dll patch, it is a timing problem, so accelerating, delaying, or avoiding the start of services can make it go away, but never completely reliably so. It crops up again any day whenever the timing changes and becomes unfavorable again.

A thought

Fri, 2010-04-16 21:47 by Milo OShea

I'm amazed at the dazzling technical ingenuity everyone displays and the lengths you have gone to in trying to solve this problem.

Why would Microsoft want to fix a glitch like this, which clearly irritates a lot of people when they are keen to sell a new product i.e. Win7, which has had good reviews and is a significant improvement on Vista? Indeed, a cynic might ask, why has such an irritating, but essentially harmless, glitch arisen? I imagine Microsoft could fix it over a weekend.

Milo

Is it really fixed in Windows 7?

Sat, 2010-04-17 22:41 by admin

I don't have Windows 7 right now and cannot check. It may well be fixed in Vista and Windows 7 and occur only in Windows XP, but I'd like to know for sure.

Still broken in Win7

Sat, 2012-01-07 02:06 by Bruce Vrana

It seems to still be a problem with my new fast Win7 x64 PC. Sometimes when I boot, I have all the icons. Other times, several are missing. I've tried all the suggestions except patching shell32.dll. Has anyone successfully done this in Win7? Is there an automated tool (like there was for XP)? Thanks.

Interesting

Sat, 2012-01-07 10:37 by admin

Strange that Microsoft seems to be unable to fix this relatively simple and obvious problem. To answer the earlier question about this, I believe that Microsoft is, by now, purely a superficially money-driven company. There is no trace of anything like programmer's honor, which you can nowadays only observe in some single-person open-source outfits.

For Microsoft, if it works in the lab on a freshly installed computer and can be demonstrated, it is good enough.

To be fair, the other big companies are no better or not much better. The younger Google also already shows a strong tendency to go the same way, for example.

The only way to make them fix such a defect is when a big customer complains about it. But since the problem does not appear at first, does not surface in the lab, and apparently crops up only on individual computers that are more loaded, more intensely and more individually set up and used than the typical big-company office workstation, Microsoft obviously never cares.

Look at this discussion here. Microsoft could easily read it too and act on it, but they have never done it, neither for this fairly well-researched defect, nor for any other one that is documented on this web site and obviously befalls many people. That is why I have given up on reporting defects to Microsoft. They never get fixed anyway. What we should concentrate on is finding workarounds.

We still have to make sure that the effect in Windows 7 indeed has the same cause. Waiting for a diligent researcher.

Win7

Mon, 2012-01-09 02:36 by Bruce Vrana

Some icons fail to appear on a month-old quad core Win7 x64 machine (i7 2.3 GHz, 8 GB RAM), without a whole lot loading at startup. Essentially a new machine that shouldn't be overloaded at startup (except for Windows itself, plus the normal startup stuff like firewall/antivirus/etc). Happens frequently enough to be very annoying and to prompt me to try everything except figuring out how to successfully patch my shell32.dll (and not have it restored automatically by Windows). The XP auto-patch tool was great, but it doesn't run on Win7.

Same defect

Mon, 2012-01-09 07:41 by admin

Sounds indeed as if this is the same defect that has been carried over from Windows XP into Windows 7. Not too nice.

The XP auto-patch tool would only work if shell32.dll in Windows 7 were sufficiently similar to that in Windows XP, which it likely is not. We are stuck, it seems.

I'm having problem with all

Sun, 2008-04-06 09:55 by complife

I'm having problem with all sys/taskbar icons after fresh instalation of xp and after reading your site i just remember that i was doing something with networking things and UPNP in Add/Remove windows components in Add/remove programs section..

In Add/Remove windows components in section Networking Services i was checked all 5 options without any good reason (i thinking it was usefull for me later) and i just unchecked all 5 options in that section and after reeboot all icons is back and booting is a litle faster now. Then i go to Services in control panel and find that 'Universal Plug and Play Device Host' is started in automatic way.

Thats what happened to me with missing all taskbar icons..
And this site is great and helpfull!

Speed up

Sun, 2008-04-06 10:07 by admin

Yes, anything that speeds up the boot and logon process can help, like removing unneeded networking functions.

Tried yours-and only my home remedy worked

Mon, 2008-12-29 15:45 by jfwilder5

Here's one that doesn't take a masters degree to work to get your missing volume icon back.

When my volume icon died - or rather disappeared, I tried to do all your fixes, and you also failed to accommodate for what version of XP we have and what service pack (mine just updated to SP3). Tried restore too. When I went into control panel and sound devices, when trying to add the icon at the checkbox, it says "sound volume not installed".

So what DID work was to search for sndvol32.exe and sndvol32.hlp which were both missing...but there were sndvol32.ex_ and sndvol32.hl_ with some other gibberish after the _ symbol. That was found with the search under the I386 folder.

I copied them into the windows/system32 folder and then changed the _ on each so they would be .exe and .hlp files (removing the gibberish too)...and then rebooted. THEN I went back and repeated trying the checkbox in the sound device icon in the control panel....and VOILA....it worked. When I went into the Windows/System32 folder after doing this, there they were, complete with the right icon beside them. Looks to me like the update to service pack 3 did something to delete them originally. There was another one in the I386 folder with _ by it and the gibberish, but I didn't do anything to that one since I didn't know what it was to begin with.

Repeating a search, they also appeared under the /lastgood folder too.

I really have to say that you all offer nice ideas for fixes, but they are way too complex for someone without true "geek" knowledge of PC back-of-the-house operations. I'm ok with stuff like this, and obviously figured this out on my own....you need to put some of this in here laypeople can figure out rather than trying to out-jargon the next guy.

Missing Icons etc

Fri, 2011-02-04 14:38 by Releived

Many Thanks for this article and solutions. I have been baffled by two problems over the last few weeks. Firstly disappearing icons (speaker, safely remove hardware) in the notification area and secondly a problem with the XP Firewall. Security centre said the firewall was on but none of the connections when I did “Show all connections” were firewalled. The setting was lost each time I booted or restarted. I tried numerous scans to see if there was a Trojan or virus (Spybot,AVG,Malware etc). Tried over 10 different Firewalls but abandoned due to either severe performance issues or incompatibility with AVG9 and manually turned on protection for connections. Did this by stopping and then restarting the Firewall. My system is XP SP3 with up to date fixes on it. I tried numerous MS Fixits but to no avail. I read your article and tried the first solution which was to stop showing UPnP Icons. I note when I requested the “stop showing” UPnP icons my XP Firewall reconfiguration was part of the removal process. Since then all icons I want appear in the notification area and firewall is on for all my connections each time I boot up or restart. Have also applied the patch and turned off media sharing from Media Player as I don’t really need it. Also I have recently changed to an N series router and (RTL8191SU adapter) and notice since I did the UPnP change re-activation time from standby has reduced significantly from about a minute to 10secs.I am not sure how UPnP show icons got turned on but will monitor from now on. Will monitor over the next few days but things look a lot better. Thanks

(A few) missing app icons after explorer crash - Tray Wizard

Fri, 2011-12-23 15:12 by dalchina

Hi, when 4 tray icons disappearing on explorer crash in Vista got annoying enough, I was very interested to read this.

There are at least two cases to distinguish:

  1. Missing icons after boot up with no login required (applications will be launched).
  2. Explorer crash (when the applications are still running).

The delay discussed above is only relevant to (1).

(2) requires a different solution.
Why do some apps suffer this problem? Apparently because a bit of code is missing, that really should be there.
http://syedgakbar.wordpress.com/2008/07/14/restore-notification-area-ico...

Various old (obsolete) programs tried to address this, but most are incompatible or buggy in Vista (so I guess would be in Win 7).
Tray Saver beta 10 (abandoned) works, but with the odd bug, and it is clearly incomplete.
So it is posisble to ensure the redisplay of the icons of modern apps in Vista using a 3rd party program.

Extensive searching lead me to Tray Wizard v4.
All tray icons are redisplayed after an explorer crash. It has a few other features too, and takes about 8Mb of RAM.

It seems to me explorer runs heavily for about 30s after the crash when this program is running.

Hope that helps someone.. maybe there's an even better solution..

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.