![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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() и многое прояснится.