0

I have an application like WindowBlinds that recreates window look at all. But i'll now stuk with tray window. I disassemble Shell_NotifyIcon() func and found it uses then Shell_NotifyIconW() func then just by ordinal (from shellw.dll) function 215 to create,modify and remove icon's.

In this funcition then I found i can find WndProc by hwnd (in disassembled code i am getting hwnd by FindWindowW(L"Shell_TrayWnd", 0);) but how?

Anybody work with this? Please help.

skaffman
  • 398,947
  • 96
  • 818
  • 769
Sergey
  • 685
  • 2
  • 8
  • 30

1 Answers1

0

Explorer just gets a WM_COPYDATA message IIRC, so you could subclass (you need to be in the same process) and catch that message, or interact with the tray icon list with toolbar messages, see the open source TraySaver app.

You could also take a look at some of the open source alternative shells, they have a lot of this undocumented stuff figured out. I linked to a couple of them in a somewhat related answer.

Community
  • 1
  • 1
Anders
  • 97,548
  • 12
  • 110
  • 164
  • I tryied to intercept Shell_NotifyIcon also, intercept works ok for some appps for other they just not start. Thanks for links – Sergey Nov 05 '10 at 14:55
  • I was talking about intercepting the Shell_NotifyIcon generated message in the explorer shell process, not every app. Either way, you have to deal with ansi AND unicode. – Anders Nov 05 '10 at 15:34