Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.01.13;
Скачать: CL | DM;

Вниз

Убрать чужую иконку из трея   Найти похожие ветки 

 
Zevsus ©   (2002-11-22 13:07) [0]

Здравствуйте!
Мне нужно убрать из трея чужую иконку.
делаю так:

procedure TForm1.Button1Click(Sender: TObject);
VAR
Wnd : hWnd;
a: PNotifyIconData;
begin
//////////////////////////////////
//Нахожу хэндл нужного мне окна///
//////////////////////////////////
a.Wnd:=Wnd;
a.cbSize:=sizeof(NOTIFYICONDATA);
Shell_NotifyIcon(NIM_DELETE, a);
end;

не убирается :(


 
paul_shmakov ©   (2002-11-22 13:49) [1]

все верно, потому как еще и id нужно в структуре указать.
есть несколько вариантов решения.
1) (про этот способ я тут писал более подробно, так что где-то в архиве есть). когда вызывается Shell_NotifyIcon, в окно трея посылается сообщение WM_COPYDATA. можно перехватывать это сообщение. в качестве данных в WM_COPYDATA передается структура

TNIDMessage = packed record
Magic: DWord; // всегда равно $34753423
Message: DWord; // NIM_ADD, NIM_MODIFY или NIM_DELETE
NID: TNotifyIconDataW;
end;

на самом деле есть несколько версий этой структуры, которые отличаются типом поля NID (TNotifyIconDataA, TNotifyIconDataW, плюс существует 3 версии структуры TNotifyIconData). но для вашей задачи эта разница не важна, т.к. вам нужно поле TNotifyIconData.uID, а оно во всех версиях находится по одному и тому же смещению.

так вот, перехватывайте с помощью хуков эти сообщения, запоминайте пару hWnd и uID и вы сможете уирать и модифицировать чужие иконки.

по этому примеру Богдан Минич написал пример своего трея, правда написал плохо и криво. все мои пожелания довести его до ума он проигнорировал :) но все равно, взгляните:
http://www.delphikingdom.com/treasury/systray.htm
обязательно комментарии еще прочтите.

2) Nick Repin нашел способ перечислять иконки в трее.
http://skyscraper.fortunecity.com/gigo/311/winprog.html#strayenum



Страницы: 1 вся ветка

Текущий архив: 2003.01.13;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.024 c
1-37087
NorthMan
2003-01-03 19:18
2003.01.13
Проблема с DBGrid. Прописываю в DBGridDrawColumnCell


14-37377
Евгений Р.
2002-12-22 16:08
2003.01.13
Перекодировка Delphi->C++Builder


1-37110
malkolinge
2003-01-04 11:19
2003.01.13
DFM ?


1-37142
smok_er
2002-12-28 14:34
2003.01.13
TWebBrowser & GoggleToolbar: Возможно ли?


1-37184
beginer1
2002-12-30 09:32
2003.01.13
СОртировка