Сейчас на форуме: tyns777, zds (+3 невидимых)

 eXeL@B —› Программирование —› Иконка в трее
Посл.ответ Сообщение


Ранг: 462.8 (мудрец), 468thx
Активность: 0.280
Статус: Участник
Only One!

Создано: 08 ноября 2009 22:51
· Личное сообщение · #1

Меня интересует именно иконка "Безопасное извлечение устройств"...
Как ее можно программно заменить на иконку своей проги?
Может есть у кого пример кода?
Заранее спасибо...

-----
aLL rIGHTS rEVERSED!





Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 08 ноября 2009 23:40 · Поправил: Модератор
· Личное сообщение · #2

если исключить модификацию ресурсов, то с ходу подумал о таком варианте:
хукаешь Shell_NotifyIcon и ловишь с параметром NIM_ADD
второй параметр - NOTIFYICONDATA, в котором в hIcon прописываешь хэндл своей иконки
пока так.

по ходу возник второй вариант - см. ниже.

для справки:
нужный код в hotplug.dll
ресурсы там же в иконках под номером 100 (извлечь) и 102 (нельзя извлечь), 101 в трее не испольуется
перед вызовом Shell_NotifyIconW вызывается LoadImageW с идентификатором иконки, например:

Code:
  1. HANDLE LoadImage(HINSTANCE hinst,
  2.     LPCTSTR lpszName,
  3.     UINT uType,
  4.     int cxDesired,
  5.     int cyDesired,
  6.     UINT fuLoad
  7. );



Code:
  1. 68776D78        50              push    eax
  2. 68776D79        6A01            push    1
  3. 68776D7B        6A64            push    64h ; 100 - icon ID
  4. 68776D7D        FF35402B7868    push    [68782B40]
  5. 68776D83        FF150C137768    call    [USER32.dll!LoadImageW]
  6. 68776D89        8B3544127768    mov     esi,[SHELL32.dll!Shell_NotifyIconW]


здесь ты можешь просто передать хэндл своей длл с тем же номером ресурса!


Итак, алго:
* создаёшь свою hotplugres.dll, в которой в ресурсах присутствуют иконки с ID 100, 101, 102
* подгружаешь эту длл и патчишь код перед вызовом LoadImageW на свой хэндл

собсна всё ))

-----
EnJoy!




Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 09 ноября 2009 00:19 · Поправил: Модератор
· Личное сообщение · #3

IMHO надо вообще hotplug отреверсить по полной и запрещать его использование, тогда проблема с флэшкой решится.

Добавлено
Тогда посмотри другие темы ДаркСайда.




Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 09 ноября 2009 01:00
· Личное сообщение · #4

progopis пишет:
тогда проблема с флэшкой решится


в сообщении DaRKSiDE я никакой проблемы не углядел

ещё по теме софт от Rouse_
Безопасное отключение накопителей
Включение/отключение Flash

-----
EnJoy!





Ранг: 673.3 (! !), 400thx
Активность: 0.40.31
Статус: Участник
CyberMonk

Создано: 09 ноября 2009 01:06
· Личное сообщение · #5

можно отреверсить вот эту прогу www.pssoftlab.com/system_tray_manager_screenshots.phtml

там помоему меняет любые иконки интерактивно.

-----
RE In Progress [!] Coding Hazard [!] Stay Clear of this Cube




Ранг: 23.2 (новичок), 8thx
Активность: 0.020
Статус: Участник

Создано: 09 ноября 2009 20:11
· Личное сообщение · #6

Jupiter пишет:
ещё по теме софт от Rouse_


конкретно вот это должно подойти -- "Класс для вывода информации о системном трее"




Ранг: 462.8 (мудрец), 468thx
Активность: 0.280
Статус: Участник
Only One!

Создано: 10 ноября 2009 16:28 · Поправил: Модератор
· Личное сообщение · #7

Dem пишет:
Помогите кто чем сможет

Ну вообще-то это явно не в тему данного топа...
К кодингу это отношения не имеет явно...

От модератора: не волнуйся, я ему уже "помог".

-----
aLL rIGHTS rEVERSED!



 eXeL@B —› Программирование —› Иконка в трее
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати