Воссоздание окна с собственным значком в трее в другом месте - PullRequest
0 голосов
/ 05 ноября 2010

У меня есть приложение, подобное WindowBlinds, которое воссоздает внешний вид окна.Но теперь я застряну с окном в трее.Я разбираю функцию Shell_NotifyIcon () и обнаружил, что она использует функцию Shell_NotifyIconW (), а затем просто по ординальной (из shellw.dll) функции 215 для создания, изменения и удаления значков.

В этой функции я обнаружил, что могу найтиWndProc от hwnd (в разобранном коде я получаю hwnd от FindWindowW (L "Shell_TrayWnd", 0);), но как?

Кто-нибудь работает с этим?Пожалуйста, помогите.

1 Ответ

0 голосов
/ 05 ноября 2010

Explorer просто получает сообщение WM_COPYDATA IIRC, так что вы можете создать подкласс (вы должны быть в том же процессе) и поймать это сообщение или взаимодействовать со списком значков в трее с помощью сообщений панели инструментов, см. Открытый исходный код TraySaver приложение.

Вы также можете взглянуть на некоторые альтернативные оболочки с открытым исходным кодом, у них есть много этого недокументированного материала. Я связал с парой из них в несколько связанном ответе.

...