Главная страница
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.5 MB
Время: 0.027 c
6-1095166307
Ryoko
2004-09-14 16:51
2004.12.12
Подключение к IRC через Indy IdIRC


4-1099235634
Владимир Березин
2004-10-31 18:13
2004.12.12
Вопрос о стилях окон


9-1091707720
SwitchBlade
2004-08-05 16:08
2004.12.12
Есть ли DelphiX для Delphi 8?


14-1101192348
NewDelpher
2004-11-23 09:45
2004.12.12
Есть ли защита от СМС-спама


14-1101004505
Думкин
2004-11-21 05:35
2004.12.12
С днем рождения! 21 ноября