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

Вниз

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

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

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

Наверх




Память: 0.48 MB
Время: 0.049 c
14-1100974842
Igorek
2004-11-20 21:20
2004.12.12
Оффтоп :-)


3-1100517366
Domkrat
2004-11-15 14:16
2004.12.12
Sql


3-1099555085
Victor!
2004-11-04 10:58
2004.12.12
Как обойти дел. на ноль в JetSQL


6-1096874386
vadimlg
2004-10-04 11:19
2004.12.12
Как через ICQClient передать файл?


1-1101449056
Игорь нтк
2004-11-26 09:04
2004.12.12
десятичный разряд





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