Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Icon handle [D7, WinXP]


Jay1982 ©   (2005-01-28 11:54:00) 

Можно-ли получить как нибудь хендл иконки в трее (чужой)? Вообще хочу просто прятать/удалять эту самую чужую иконку.


Jay1982   (2005-01-28 15:54:00) [1]

Например ICQ


DVM   (2005-01-28 15:30:00) [2]


> Ещё вопрос, удаляются не все иконки, перебрал все окна,
> в том числе и скрытые, в поисках хендла, в чём может быть
> моя ошибка?

Какие конкретно не удаляются? Ты часом не про регулятор громкости и индикатор сетевых подключений?


Jay1982   (2005-01-28 14:47:00) [3]

Ещё вопрос, удаляются не все иконки, перебрал все окна, в том числе и скрытые, в поисках хендла, в чём может быть моя ошибка?


Jay1982   (2005-01-28 13:54:00) [4]

Спасибо, всё работает


DVM   (2005-01-28 13:23:00) [5]


> Jay1982 ©   (28.01.05 13:17) [6]

http://pascal.sources.ru/cpp/faq/27.htm


Jay1982   (2005-01-28 13:17:00) [6]

DVM ©   (28.01.05 13:14) [5]
Даже так, сейчас попробую


DVM   (2005-01-28 13:14:00) [7]


> Игорь Шевченко ©   (28.01.05 12:41) [2]


> Внедрившись в Explorer.

разумеется

> Прочитал про Shell_NotifyIcon() всё равно всё сводится к
> хедлу иконки или я чего-то недопонимаю

тебе значок убрать надо или вместо него чтобы пустота была - пустой квадратик?
Чтобы удалить иконку из области уведомлений надо знать хэндл окна, поместившего ее туды, хэндл самой иконки не нужен.


Jay1982   (2005-01-28 13:01:00) [8]

Прочитал про Shell_NotifyIcon() всё равно всё сводится к хедлу иконки или я чего-то недопонимаю


Jay1982   (2005-01-28 12:57:00) [9]

Через Explorer максимум добирался до TrayNotifyWnd - отвечает за трей, и его части SysPager - отвечает за все иконки сразу


Игорь Шевченко   (2005-01-28 12:41:00) [10]

DVM ©   (28.01.05 12:20) [1]


> то можно попытаться прочитать нужные значения оттуда


Внедрившись в Explorer.

С уважением,


DVM   (2005-01-28 12:20:00) [11]


> Можно-ли получить как нибудь хендл иконки в трее (чужой)?
>

можно.
1) Поставить хук на сообщения окна Shell_TrayWnd и отлавливать WM_COPYDATA среди которых отбирать нужные. Без гарантии, т.к. необходимо, чтобы программа повторно добавила значок, а не все программы это делают по требованию.
2) Если речь идет только о Win2000/xp - то т.к. в них значки области уведомлений расположены на кнопках тулбара, то можно попытаться прочитать нужные значения оттуда. С каждой кнопкой наверняка связана некоторая структура (но какая неизвестно) в которой присутствует вся информация.

P.S. Тебе не хэндл иконки нужен. Почитай про функцию ShellNotifyIcon() и многое прояснится.


Наверх

Титульная страница Поиск, карта сайта Написать письмо