Изменить поведение NotifyIcon с помощью стороннего приложения - PullRequest
0 голосов
/ 30 октября 2008

Мне всегда было любопытно посмотреть, смогу ли я показать, скрыть или изменить NotifyIcon, созданный другим приложением через приложение C #.

Может кто-нибудь опубликовать пример того, как это сделать? :)

Ответы [ 3 ]

2 голосов
/ 30 октября 2008

Чтобы изменить значки в systray, вы можете использовать Shell_NotifyIcon Win32 API ( P / Invoke объявление ). Значки связаны с дескриптором окна и идентификатором. Это означает, что для изменения или скрытия значка другой программы вам необходимо знать окно и идентификатор, используемый этим приложением для его регистрации. Возможно, вам удастся перебрать его, перечислив все окна для этого процесса и сделав вызовы, например, с каждым дескриптором и каждым числом от 0 до 5000 тысяч, но ваши шансы на успех очень малы.

1 голос
/ 17 июня 2009

Вы можете подключить само окно SystemTray, чтобы перехватывать все запросы Shell_NotifyIcon (). Затем вы будете знать точные HWND и идентификаторы, которые зарегистрированы для каждого значка. Подробности можно узнать через любую поисковую систему.

0 голосов
/ 30 октября 2008

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

...