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

Вниз

Отлов сообщения о повторном выводе иконки   Найти похожие ветки 

 
Piter ©   (2004-10-19 01:29) [0]

Известно, что при перезапуске explorer исчезают иконки из TaskBar"а, при этом приложениям, у которых были иконки, посылается сообщение с просьбой заново вывести иконки. Какое это сообщение?


 
GuAV ©   (2004-10-19 02:15) [1]

RegisterWindowMessage("TaskbarCreated")


 
GuAV ©   (2004-10-19 02:16) [2]

зы А мне больше нравится видеть MF на таскбаре там же где и раньше ан не где часики.


 
Piter ©   (2004-10-19 10:39) [3]

GuAV ©   (19.10.04 2:15) [1]
RegisterWindowMessage("TaskbarCreated")


а при чем здесь регистрация нового сообщения? Может, ты не понял вопроса?


 
Игорь Шевченко ©   (2004-10-19 10:51) [4]

Piter ©   (19.10.04 10:39) [3]

Это ты не понял ответа и не хочешь читать MSDN или Google


 
Nick Denry ©   (2004-10-19 15:16) [5]

2Игорь Шевченко ©   (19.10.04 10:51) [4]

Это ты не понял ответа

Класс %)

Piter ©   (19.10.04 10:39) [3]

Внесу свои пять копееек - регистрируешь сообщение, и добавляешь его в обработку сообщений. Это сообщение посылается тогда, когда explorer загружается, т.е. предположительно перд этим он падает, -> вывод - необходимо заново поместить значок в трей.


 
Piter ©   (2004-10-19 21:57) [6]

Да, стормозил. Прошу прощения


 
Михан   (2004-10-24 17:06) [7]

регистрируешь сообщение, и добавляешь его в обработку сообщений.
A кусок кода приведите пожалуста


 
Nick Denry ©   (2004-10-24 21:01) [8]

2Михан   (24.10.04 17:06) [7]

см. GuAV ©   (19.10.04 02:15) [1]


 
Михан   (2004-10-24 21:20) [9]

GuAV ©   (19.10.04 02:15) [1] я смотрел
Но никак неполучается отловить момент когда explorer загружается


 
GuAV ©   (2004-10-25 00:07) [10]

Михан   (24.10.04 21:20) [9]
Тоже не понял ответа.

Следует читать в MSDN про RegisterWindowMessage
И про The Taskbar:
http://search.microsoft.com/search/results.aspx?qu=TaskbarCreated&View=msdn&st=b&c=0&s=1&swc=0
в Taskbar Creation Notification это описано с примером.


 
abc   (2004-10-25 19:09) [11]

Михан   (24.10.04 17:06) [7]
A кусок кода приведите пожалуста
Вот отсюда http://www.delphimaster.ru/cgi-bin/news.pl?showpage=26
скачай компонент CoolTrayIcon v. 4.1.1 (317Kb)
разломай его и копируй в свою программу
WM_TASKBARCREATED := RegisterWindowMessage("TaskbarCreated");
и всё что с зтим связано.
Там всё это есть.


 
Михан   (2004-10-26 14:13) [12]

Ну никак неполучается  отловить момент когда происходит перезагрузка Explorer"
Делаю так

unit USysTray;
interface

uses
Windows,Messages,SysUtils,Variants, Classes, Graphics, Controls, Forms,
ShellAPI, StdCtrls, ExtCtrls;

type
 TForm1 = class(TForm)

 procedure FormDestroy(Sender: TObject);
 procedure FormCreate(Sender: TObject);

private{ Private declarations }
 procedure DefaultHandler(var Msg : TMessage);

public{ Public declarations }

end;

var Form1: TForm1;
NID: TNotifyIconData;
WM_TASKBARCREATED: Cardinal;

implementation

{$R *.dfm}

procedure IconADD;
begin
with NID do begin
  cbSize := SizeOf(TNotifyIconData);
  Wnd := Form1.Handle;
  uId := 1;
  uFlags := NIF_ICON or NIF_MESSAGE or NIF_TIP;
  hIcon := Application.Icon.Handle;
  szTip :="SysTray";
end;
Shell_NotifyIcon(NIM_ADD, @NID);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
WM_TASKBARCREATED := RegisterWindowMessage("TaskbarCreated");
IconADD;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
Shell_NotifyIcon(NIM_DELETE, @NID);
end;

procedure TForm1.DefaultHandler(var Msg :TMessage);
begin
if Msg.Msg = WM_TASKBARCREATED then IconADD;
end;

end.

Но почему то когда происходит перезагрузка Explorer" в procedure TForm1.DefaultHandler(var Msg :TMessage); ничего не пороисходит.
Помогите.
Очень нужна ваша помощь.


 
grom   (2004-10-26 19:42) [13]

http://delphi.vitpc.com/asp/answer.asp?IDAnswer=26312


 
GuAV ©   (2004-10-26 21:13) [14]

Михан   (26.10.04 14:13) [12]
procedure DefaultHandler(var Msg : TMessage);


На этой строке никаких варниногв не возникает ?
Если нет то они отключены и видимо напрасно.

procedure DefaultHandler(var Message); override;


 
Михан   (2004-10-27 08:03) [15]

С procedure DefaultHandler(var Message); override;
вместо procedure DefaultHandler(var Msg : TMessage);
все заработало.
GuAV спасибо.
Пример grom тоже работает.
Спасибо всем.



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

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

Наверх




Память: 0.48 MB
Время: 0.038 c
14-1101400232
Undert
2004-11-25 19:30
2004.12.12
Опять Pointer


3-1100507302
Death
2004-11-15 11:28
2004.12.12
DBGrid. Отображение данных в полях


14-1101285310
infom
2004-11-24 11:35
2004.12.12
Тут недавно пробегала занимательная задачка, напомните плиз !


14-1101306416
European
2004-11-24 17:26
2004.12.12
CVS and WinCVS


3-1100244981
lightix
2004-11-12 10:36
2004.12.12
Сжать DBF





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский