Форум: "WinAPI";
Текущий архив: 2002.11.18;
Скачать: [xml.tar.bz2];
ВнизИконка в трее Найти похожие ветки
← →
Керик (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 вся ветка
Форум: "WinAPI";
Текущий архив: 2002.11.18;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.014 c