Анимированные иконки в трее

Тема в разделе "WASM.BEGINNERS", создана пользователем LittleFox, 16 апр 2008.

  1. LittleFox

    LittleFox New Member

    Публикаций:
    0
    Регистрация:
    1 апр 2008
    Сообщения:
    36
    Привет всем!
    Знает кто-нибудь как можно заменить иконку в трее, которая показывает соединение и передачу данных по сети, т.е. хотелось бы поменять мигающие мониторчики на самодельное творение. И чтобы когда по ней мышкой щелкать, не виндозовский диалог, а свой показывать?
     
  2. Mikl_

    Mikl_ New Member

    Публикаций:
    0
    Регистрация:
    14 ноя 2006
    Сообщения:
    907
    LittleFox Держи!
    Какие-то траблы с аттачем заливаю второй раз:dntknw:
     
  3. LittleFox

    LittleFox New Member

    Публикаций:
    0
    Регистрация:
    1 апр 2008
    Сообщения:
    36
    Спасибо за коды, но мне другое надо. Можно настроить сетевые подключения так чтобы в трее были видны монитры(иконки), они есстесно анимированные, вот их я хочу заменить на свои, и чтобы при кликнии диалог с настройками свой показывать а не виновский. Вообще возможно ли так сделать?
     
  4. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    Чтобы программа, модифицирующая иконки, была прежней, а сами иконки были твои, и меню тоже твоё?
    Перехватываешь Shell_NotifyIcon, и меняешь стандартные иконки на свои. А с менюшкой - внедряешься в explorer, ищешь wndproc окна с классом notifytraywnd и меняешь обработчик на свой, в котором будешь отслеживать сообщения, связанные с менюшкой, блокировать стандартную менюшку и выводить свою.
     
  5. LittleFox

    LittleFox New Member

    Публикаций:
    0
    Регистрация:
    1 апр 2008
    Сообщения:
    36
    Вот это уже похоже то что нужно, поищу на форуме как это все реализовать, спасибо.:)
     
  6. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    cresta
    Круто, конечно, но, по-видимому, проще пути и нет.

    LittleFox
    Подменить иконки чужого соединения я не нашёл как (но сильно не искал). Для RAS-соединения можно полностью заменить иконки, меню и диалоги через предоставляемую с древних времён кастомизацию, если это устроит.
     
  7. probka

    probka New Member

    Публикаций:
    0
    Регистрация:
    11 фев 2008
    Сообщения:
    170
    Есть прога, которая заменяет иконки у прог. Забыл как называется. Вспомню, скажу.
     
  8. Com[e]r

    Com[e]r Com[e]r

    Публикаций:
    0
    Регистрация:
    20 апр 2007
    Сообщения:
    2.624
    Адрес:
    ого..
    блин если уж до ресурсов дошло, то reshack те в руки.
     
  9. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    IceStudent

    Ты как-то советовал меню делать через какой-то shell интерфейс, но ничего не получилось. Пришлось делать через хук.

    LittleFox

    Делал самодельные часы. И модифицировал менюшку, которая выводится по клику в трее на часах.
    Схема такая:

    Делал dll с хуком. В ней же кроме самого хука была новая wndProc для обработки менюшных сообщений и добавления своих итемов в стандартную менюшку.
    Там же была ещё одна wndproc для обработки неменюшных сообщений из серии WM_USER+... (для управления часами извне).
    В этой же dll в ресурсах был диалог настройки часов: шрифты, цвета, размеры и т.д.

    Загружал эту dll в процесс эксплорера через механизм хука, находил оригинальную WndProc и менял на свою.

    Всех тонкостей уже не помню, да и комментариев в коде не писал :dntknw:
    Но на всякий случай прилагаю то, что есть из кодов в аттаче.

    Поройся, может что полезное найдешь.
     
  10. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    Вот результат:
    [​IMG]

    Запускается файлом loader.exe, при этом в систем32 нужно скопировать dll с хуком nproc.dll.
    Если у тебя уже есть кустомные часы, их нужно отключить и затем перезапустить explorer, прежде чем запускать loader.

    В менюшке последний пункт добавлен из dll. По его выбору запускается диалог настроек.

    Думаю, что в твоём случае надо просто вместо эксплорера внедряться в процесс, который принимает сообщения от клика на иконках (ras или кто там ещё).
     
  11. DarkAngel

    DarkAngel New Member

    Публикаций:
    0
    Регистрация:
    15 ноя 2010
    Сообщения:
    12
  12. Com[e]r

    Com[e]r Com[e]r

    Публикаций:
    0
    Регистрация:
    20 апр 2007
    Сообщения:
    2.624
    Адрес:
    ого..
    археологи itt?