Make Windows "Show icon and notifications" by default, but let you hide some

In Windows 7 if you have the Always show all icons and notifications on the taskbar option disabled, the setting for individual applications defaults to Only show notifications.

alt text

Is there a magical way of changing the default to Show icon and notifications instead of Only show notifications?

alt text

Use-case: when a new application comes along and adds an icon to the system tray, it defaults to showing the icon and notifications. I like the majority of the icons down there as they offer quick access to whatever programs are running BUT I still want to selectively hide the few that I do not want to see down there.

If I enable Always show all icons and notifications on the taskbar I can't hide any. If I disable it, I have to go through every single application in the list and change the option, then keep my eye on it for any new applications. Hence my question.


This default behavior bothers me a lot also. I agree with Microsoft that it was probably a good idea to default to "Only Show Notifications" for most users. The purpose of the "Notification Area" is (as its name implies) to show notifications to its users. It should NOT be a place where companies put useless icons that "advertise" their programs, but do nothing.

That being said, as a power user, I have a good idea of which tray icons are important to me and which I'd prefer to hide. I'd much rather have the icons always show by default, but with the ability to manually hide individual ones, just as the OP has requested. Many tray icons not only provide notifications, but also real-time status and quick access to settings and controls, etc. So I'm disappointed by the lack of a setting (even in the registry) that would allow the behavior for new notification icons to be "Show Icon and Notifications" by default.

I have not been able to find such a setting. The registry key mentioned above by James is probably not useful. For one thing, it is under HKLM, which is a machine-wide setting. But the behavior of tray icons is user-specific, however there is no HKCU equivalent of that key.

The relevant registry key is actually HKCU\Software\Classes\Local Settings\Microsoft\Windows\CurrentVersion\TrayNotify in the IconStreams value. This key is a binary registry key. It contains several blocks of data that store the full path to executables that have added notification icons, as well as the last tooltip displayed by each icon and the "show" setting for each.

So although I haven't found a way to change the default behavior for new icons, I was able to find a few good references for how to decipher the binary format of the above registry key or how to access the same information using the (undocumented) ITrayIcon interface. These methods were used to produce utilities that can detect and change the behavior of individual tray icons programmatically.

Since programmatic access to this information is available, it should not be hard to write a small utility program that periodically monitors the list of tray icons and changes the behavior of any new icons it detects. After that, it would record the name of the icon and would not alter it again, so that any changes the user makes manually would not be overwritten.

Here are some code examples for detecting and modifying the behavior of individual tray icons:

Both of these give pretty good examples of performing the tasks required to make a small utility that monitors and changes the behavior of new notification icons. If at some point I get around to writing that utility, I'll post it back here.


Old post I know, but just in case...

I think you are probably looking for something similar to the MSDN article here which shows how to disable the Backup and Restore auto-notification.

As stated previously, this will probably require a registry edit. Probably in HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\NotificationArea, but I found something which might work over at EggheadCafe which looked worth a try.