Привет всем! Знает кто-нибудь как можно заменить иконку в трее, которая показывает соединение и передачу данных по сети, т.е. хотелось бы поменять мигающие мониторчики на самодельное творение. И чтобы когда по ней мышкой щелкать, не виндозовский диалог, а свой показывать?
Спасибо за коды, но мне другое надо. Можно настроить сетевые подключения так чтобы в трее были видны монитры(иконки), они есстесно анимированные, вот их я хочу заменить на свои, и чтобы при кликнии диалог с настройками свой показывать а не виновский. Вообще возможно ли так сделать?
Чтобы программа, модифицирующая иконки, была прежней, а сами иконки были твои, и меню тоже твоё? Перехватываешь Shell_NotifyIcon, и меняешь стандартные иконки на свои. А с менюшкой - внедряешься в explorer, ищешь wndproc окна с классом notifytraywnd и меняешь обработчик на свой, в котором будешь отслеживать сообщения, связанные с менюшкой, блокировать стандартную менюшку и выводить свою.
cresta Круто, конечно, но, по-видимому, проще пути и нет. LittleFox Подменить иконки чужого соединения я не нашёл как (но сильно не искал). Для RAS-соединения можно полностью заменить иконки, меню и диалоги через предоставляемую с древних времён кастомизацию, если это устроит.
IceStudent Ты как-то советовал меню делать через какой-то shell интерфейс, но ничего не получилось. Пришлось делать через хук. LittleFox Делал самодельные часы. И модифицировал менюшку, которая выводится по клику в трее на часах. Схема такая: Делал dll с хуком. В ней же кроме самого хука была новая wndProc для обработки менюшных сообщений и добавления своих итемов в стандартную менюшку. Там же была ещё одна wndproc для обработки неменюшных сообщений из серии WM_USER+... (для управления часами извне). В этой же dll в ресурсах был диалог настройки часов: шрифты, цвета, размеры и т.д. Загружал эту dll в процесс эксплорера через механизм хука, находил оригинальную WndProc и менял на свою. Всех тонкостей уже не помню, да и комментариев в коде не писал Но на всякий случай прилагаю то, что есть из кодов в аттаче. Поройся, может что полезное найдешь.
Вот результат: Запускается файлом loader.exe, при этом в систем32 нужно скопировать dll с хуком nproc.dll. Если у тебя уже есть кустомные часы, их нужно отключить и затем перезапустить explorer, прежде чем запускать loader. В менюшке последний пункт добавлен из dll. По его выбору запускается диалог настроек. Думаю, что в твоём случае надо просто вместо эксплорера внедряться в процесс, который принимает сообщения от клика на иконках (ras или кто там ещё).