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

Вниз

Иконка в трее   Найти похожие ветки 

 
Керик   (2002-10-04 21:42) [0]

Подскажите на примере: как восстановить иконку программы в трее при крахе проводника Windows.


 
Diamond Cat ©   (2002-10-05 00:02) [1]

я кактоо пытался бороться с этим но ничего умнее чем ставить хук на ABM_ACTIVATE не придумал


 
Rouse_ ©   (2002-10-05 00:20) [2]

var nid: TNotifyIconData;

Shell_NotifyIcon (NIM_ADD, @nid);
В таймере.

Идея какая.
nid.wnd := Handle;

Если wnd не меняется то иконка в трей второй раз не добавится, а если произошел крах проводника то она сразу там появляется.

ЗЫ: система при перезапуске проводника посылает какое то сообщение всем программам, а вот какое забыл, где то в архивах форумов это всплывало

Желаю успехов


 
paul_shmakov ©   (2002-10-07 02:03) [3]

нет, все намного проще. нужно обрабатывать сообщение, возвращаемое RegisterWindowMessage("TaskbarCreated"). при его обработке заново добавлять иконку в трей.
это сообщение рассылается во все окна при старте explorer.exe.


 
Керик   (2002-10-07 13:10) [4]

paul_shmakov, а нельзя ли рабочий примерчик?


 
Opuhshii ©   (2002-10-07 14:16) [5]

2Керик (04.10.02 21:42)
что ж тут такого,...

const
WM_TaskbarCreated:Dword=WM_USER;

MyForm=class(TForm)
....
procedure OnTaskbarCreated(var message:TMessage);message WM_TaskbarCreated;
end;

implementation

procedure MyForm.OnCreateMyForm(Sender:TObject);
begin
WM_TaskbarCreated:=RegisterWindowMessage("TaskbarCreated");
end;

procedure MyForm.OnTaskbarCreated(var message:TMessage);
begin
Shell_NotifyIcon(NIM_ADD, @nid);
end;


 
Opuhshii ©   (2002-10-07 14:20) [6]

%)) не попробовал,... извиняюсь,.. ;)


 
Opuhshii ©   (2002-10-07 14:27) [7]

const
WM_TaskbarCreated:Dword=WM_USER;

type
TMyForm = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
procedure WndProc(var Message: TMessage); override;
{ Public declarations }
end;

.....

implementation

procedure TMyForm.WndProc(var Message: TMessage);
begin
if Message.Msg=WM_TaskbarCreated then
Shell_NotifyIcon(NIM_ADD, @nid)
else
Inherited;
end;

procedure TMyForm.FormCreate(Sender: TObject);
begin
WM_TaskbarCreated:=RegisterWindowMessage("TaskbarCreated");
end;


во как... ;)



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

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

Наверх




Память: 0.48 MB
Время: 0.028 c
1-59111
Part
2002-11-07 15:20
2002.11.18
Еще один простой вопрос!!


14-59328
Кулюкин Олег
2002-10-31 12:40
2002.11.18
Собираюсь в молодую перспективную команду.


3-59011
cypher
2002-10-28 22:54
2002.11.18
Проблема с MS SQL Server 2000


3-58992
Андрей Загибалов
2002-10-28 05:33
2002.11.18
Сортиорвка таблиц по возрастанию(убыванию)


14-59434
Agent Smith
2002-10-30 17:24
2002.11.18
VirtualCD & WinXP