Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2003.01.13;
Скачать: [xml.tar.bz2];

Вниз

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

 
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 вся ветка

Форум: "WinAPI";
Текущий архив: 2003.01.13;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.007 c
14-37328
Ее звали Мечтой
2002-12-22 22:48
2003.01.13
Какой Кошмар...


6-37256
Евген
2002-11-14 12:06
2003.01.13
Включение компа по сети


8-37229
Kr_Alex
2002-06-08 15:31
2003.01.13
JPG to BMP


7-37410
alex134
2002-11-03 01:29
2003.01.13
Вопрос для шарящих (работа с адресным пространством)


4-37434
SYNthetic
2002-11-21 17:45
2003.01.13
Обновление устройств Plug&Paly





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский