You are viewing our forum as a guest. For full access please Register. WindowsBBS.com is completely free, paid for by advertisers and donations.
shell notification icon
Discussion in 'Windows 7' started by spanky57, 2012/08/12.
- 2012/08/12
spanky57 InactiveThread Starter
Joined: 2012/08/12 Messages: 1 Likes Received: 0Every time I start my comp I get a message [Cannot create shell notification icon] can anyone please help? Windows 7 64bit Thanks Fred
Last edited: 2012/08/12 spanky57,
1
2012/08/13
MrBill SuperGeekWindowsBBS Team Member
Joined: 2006/01/14 Messages: 4,303 Likes Received: 268
I was troubleshooting an unattended installation of a particular application. The install seemed to hang right away so I figured it was presenting some kind of message [error?].
Using a Window Spy tool I made the setup process visible and saw the following message:
The unattended install was supplied by the vendor and apparently they use InstallAware.
The setup tries to create a Tray Icon, probably a setup progress indicator, but this fails because there is no shell running [the installation is pushed from a deployment server].
The setup.exe extracts a bunch of files, including the actual installer executable and places this in a temp folder. Using Process Explorer I tracked down the path:
I opened the setup executable in Ida Pro and searched for the string “Cannot create shell notification icon” on the Strings window:
Then I checked where in the code this string is referenced [doubleclick on the string and press Ctrl-X]:
From the Disassembly we can see that sub_4C3F0C is called and if this returns a value > 0 [Boolean TRUE] we jump to loc_4C39F6. if the return value is 0 the error message is displayed:
sub_4C4F0C makes a call into the Shell_NotifyIcon API:
I decided to patch the code by replacing the call to Shell_NotifyIcon with “return TRUE”. I have 6 bytes to do this:
To return TRUE we need to set the EAX CPU register [which holds the return value] to 1. If I would use mov eax, 0 this would take up 5 bytes. To get the same result in less bytes we can xor eax with itself [value becomes 0] and the increment it with 1.
Finally we return with retn 8 [8 because the function takes two arguments which are both 4 bytes in a 32 bit application]:
Now the installation continues without errors [screen belows shows the non silent installation]:
Was once an enthusiastic PepperByte employee but is now working elsewhere. His blogs are still valuable to us and we hope to you too.
This technote identifies a solution to the error Cannot create Shell Notification Icon, which might occur after a user who was once able to log into IBM® Rational® Portfolio Manager [RPM] has had their password reset.
Cause
The full error message that occurs is as follows:
Application Error
Exception ERzTrayIconError in module RPMITray.exe at 0007D51F, Cannot create Shell Notification Icon
Resolving The Problem
Use the following steps to resolve this error message:
- Exit the RPM Tray by clicking it and selecting Exit RPM Tray.
- Launch the RPM Client and uncheck Monitor Workflow.
- Log into RPM.
- After a successful login, re-start the RPM Tray on Icon tray and recheck Monitor Workflow
- The error should no longer occur [{"Product":{"code":"SSRR2G","label":"Rational Portfolio Manager"},"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Component":"Workflows \/ Notifications","Platform":[{"code":"PF002","label":"AIX"},{"code":"PF033","label":"Windows"}],"Version":"6.1;6.1.1.1;6.1.1.2;6.1.1.3;6.1.2.7;6.2;6.2.2.3;7.0.0.0;7.0.1.1;7.0.2.2","Edition":"","Line of Business":{"code":"LOB45","label":"Automation"}}]