Some Systray icons disapear after explorer crash

B

b*e*a*s*t

Hi,

Im sure you've heard this before "a windows bug"

Some of my systray icons dissapear after the explorer crashes/hungs/restarts
i dont care what the cause is as it will crash at some point it does not
happen all the time but some sytray icons disappear namely my norton
internet security now but never use to when explorer crashed, how would you
get these icons to stay when explorer crashes there is a reqitry key needed
for " When explorer crashes display these icons in systray no matter what "
I have a program PS tray Factory that can restore these easily, what is this
command? why should i have a program to restore these when winXP should be
doing its job

If only a few icons dont come back, then why is this? where is the setting
to say bring these icons back to systray after refresh?

My norton systray icon is set to always show but doesn't after an explorer
crash

PS:- Dont get confused It has nothing to do with systray not loading or the
PnP issue, happens on my XP and 2000 pro machines


WinXP Pro SP2
NIS 2005
Spysweeper

AMD 939 +3500 64bit
Asus SLI A8N M/B
2 x MSI 6600GT 500/1000
1GB Dual Corsair XMS Pro 2.2.2.5
Raptor 74Gb HDD


Thanks
Beast
 
B

b*e*a*s*t

no only when explorer crashes/hangs or refreshs a reboot/log off and the on
again gives all icons back

beast
 
D

DanS

Hi,

Im sure you've heard this before "a windows bug"

Some of my systray icons dissapear after the explorer
crashes/hungs/restarts i dont care what the cause is as it will crash
at some point it does not happen all the time but some sytray icons
disappear namely my norton internet security now but never use to when
explorer crashed, how would you get these icons to stay when explorer
crashes there is a reqitry key needed for " When explorer crashes
display these icons in systray no matter what " I have a program PS
tray Factory that can restore these easily, what is this command? why
should i have a program to restore these when winXP should be doing
its job

If only a few icons dont come back, then why is this? where is the
setting to say bring these icons back to systray after refresh?

My norton systray icon is set to always show but doesn't after an
explorer crash

PS:- Dont get confused It has nothing to do with systray not loading
or the PnP issue, happens on my XP and 2000 pro machines


WinXP Pro SP2
NIS 2005
Spysweeper

AMD 939 +3500 64bit
Asus SLI A8N M/B
2 x MSI 6600GT 500/1000
1GB Dual Corsair XMS Pro 2.2.2.5
Raptor 74Gb HDD


Thanks
Beast

the reason that many systray icon's do not re-appear after a crash of
explorer is because the application was not written properly to account
for this.

when the app starts, it places it's icon in the system tray by telling
explorer to put its icon there. no problem because explorer was running
first, and typically is loaded before any app places it's icon in the
systray.

when explorer closes and is re-started, it does not know what was in the
system tray previously, nor what is supposed to be there. when the shell
re-starts, it sends a system-wide broadcast message, WM_TASKBARCREATED
(?). since this is a broadcast messages, all running apps are supposed to
hear this message. upon hearing this message, if the app has a systray
icon, it is supposed to respond with the same messages sent when it
originally put the icon in the tray, once again telling the shell to put
this icon in the systray.

as i have found, most apps DO NOT respond to this message.

regards,

DanS
 
B

b*e*a*s*t

That sounds right but how would you change the programs to broadcast that
there suppose to be in the systray?

beast
 
M

Mike Kolitz

It's actually a bug in those programs, not in Windows.

When a program draws an icon in the notification area (system tray), it does
so by sending a message notifying Windows that the icon should be drawn.
When Explorer crashes and restarts, it also sends a message to any running
programs asking for certain bits of information - this is the program's
opportunity to remind Explorer that it should draw the notification area
icon.

There are a lot of programs out there that don't tell Explorer to redraw the
icon. That's what you're seeing.
 
R

Rock

b*e*a*s*t said:
That sounds right but how would you change the programs to broadcast that
there suppose to be in the systray?

beast

That can't be changed from within windows. It's a function of the
program and only the vendor can change it. The best way to recover is
to logout then login again. Another option is to end the current
instance of the program whose "notification area" icon has disappeared,
then restart the program.
 
D

Don Taylor

DanS said:
....
when explorer closes and is re-started, it does not know what was in the
system tray previously, nor what is supposed to be there. when the shell
re-starts, it sends a system-wide broadcast message, WM_TASKBARCREATED
(?). since this is a broadcast messages, all running apps are supposed to
hear this message. upon hearing this message, if the app has a systray
icon, it is supposed to respond with the same messages sent when it
originally put the icon in the tray, once again telling the shell to put
this icon in the systray.

Is there a way to capture that message with a script?
Or a way to get that dumped into the event log?

I suspect this is happening far more often that most people realize.
(Which might explain why it isn't recorded in the log file)

Thank you
 
D

DanS

(e-mail address removed) (Don Taylor) wrote in
Is there a way to capture that message with a script?
Or a way to get that dumped into the event log?

i would assume that you could capture the message with a custom program,
but i don't know how you would handle it. it would take some configuring,
which you would have to tell the 'program' what processes (could be by
exe name) have an icon in the system tray. when the 'program' hear's the
WM_TASKBARCREATED message, it could then enumerate through the active
processes looking for names that match with it's list of the known names.

getting the individual apps to once again tell the shell to place it's
icon in the system tray is the issue here. i don't think it's possible.
maybe the only way would be to have the custom monitor program then end
the process and re-start it.

regards,

DanS
 
D

Don Taylor

DanS said:
(e-mail address removed) (Don Taylor) wrote in
i would assume that you could capture the message with a custom program,
but i don't know how you would handle it. it would take some configuring,
which you would have to tell the 'program' what processes (could be by
exe name) have an icon in the system tray. when the 'program' hear's the
WM_TASKBARCREATED message, it could then enumerate through the active
processes looking for names that match with it's list of the known names.

I was not trying to even be as complicated as that, I wasn't trying to
"fix" the problem with other programs not putting their icons back.

I was ONLY asking if I could do something within my programming ability
that would record that the resurrectionof windows explorer had happened.
getting the individual apps to once again tell the shell to place it's
icon in the system tray is the issue here. i don't think it's possible.
maybe the only way would be to have the custom monitor program then end
the process and re-start it.

Fixing someone else's app to correctly deal with windows explorer crashes
is far beyond anything I would even think of doing, and likely not
possible.

Thanks
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top