Windows – Make specific tray icon always show for all profiles in Windows 7

notification-areawindows 7

I'm setting up a Windows 7 machine that will sit out in the open and be shared by a lot of people. I have added a shortcut to the all users start menu to run a program that sits in the system tray. I want the tray icon for this program to always be visible by default, no matter who logs in. A user can turn it off on their profile if they really want to, but I need it to at least start out set as always visible. How can I do this?

I would rather not show all the icons, in part for the same reason they are hidden in the first place: I don't want the clutter. Also, as this is a public computer there is another program called DeepFreeze running that also has a system tray icon, and I don't want that icon to show all the time.

Best Answer

In a nut-shell, currently, you can't do this.

There is no Group Policy or Preference to set this, and the way it keeps track makes it specific to the current user and the system, making the 'settings' vary greatly from instance to instance.

They are stored here (in the registry) if you want to check it out: HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\TrayNotify.

From here:

There is no way for applications to programmatically always show themselves top level on the system tray either on first install or at any time during runtime. This is one of several changes we’ve made in Windows 7 in an effort to produce a cleaner, quieter desktop that is in the user’s control to customize the top level with their favorite applications and icons.

We keep the user in control of the notification area by not allowing programmatic promotion (other than temporarily or to show a notification). Assuming the machine is sufficiently quiet, when you first add your icon with Shell_NotifyIcon(NIM_ADD, ...) it will be shown on the taskbar for 45 seconds, then move into the overflow thereafter. If the user promotes an icon, it will always live on the taskbar. If the user demotes it, the icon will never be seen on the taskbar. Any promotion needs to be user initiated. We’ve made this much easier in Windows 7 via drag/drop & through the Notification Area Icons control panel, and what we’ve seen in usability studies and based on beta feedback, is that users have no difficulties discovering how to customize notification behavior and will promote the icons they want quick access to.

About your easiest bet is to show ALL Notification Area icons for all users. This can be done by adding a (simple) registry entry:

In HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer create a new DWORD value named EnableAutoTray and set it to 0 to turn off the Notification Area's 'auto hide' features.

With some OU configuration and scripting you can use it in a HKCU context as well, if you only want it to happen for certain users/groups.

See here for more info on that.

Related Question