Форум: "Начинающим";
Текущий архив: 2007.01.21;
Скачать: [xml.tar.bz2];
ВнизСообщение о закрытии от Винды. Найти похожие ветки
← →
vain © (2006-12-28 14:32) [0]Проблема такая. Полжил, я, значит иконку в трей.
NID.uCallbackMessage:= WM_TRAYICON;
NID.Wnd:= AllocateHWnd(TrayHandler);
NID.uFlags:= NID.uFlags or NIF_MESSAGE;
Shell_NotifyIcon(NIM_ADD, @NID);
Где
procedure TrayHandler (var Message: TMessage);
begin
If Message.Msg= WM_TRAYICON
Then begin
...
end;
end;
Тогда TrayHandler ловит сообщения не только от иконки в трее, насколько я понимаю. Дело в том, что при выходе из системы, программа не закрывается и выход отменяется. Как быть? Подскажите, пжл.
← →
Ыеууз (2006-12-28 15:04) [1]На закрытие формы убивайте иконку
← →
Elen © (2006-12-28 15:16) [2]
> при выходе из системы, программа не закрывается и выход
> отменяется
А что такого твоя прога делает, что может мешать винде выходить?
← →
vain © (2006-12-28 15:16) [3]
> На закрытие формы убивайте иконку
Это я и так делаю.
Мне кажется, что все сообщения кроме WM_TRAYICON игнорируются, в том числе, и сообщение от винды, которое она посылает при выходе. Так? Как бороться?
← →
vain © (2006-12-28 15:18) [4]
> А что такого твоя прога делает, что может мешать винде выходить?
Вроде, ничего. А что такое может делать прога, чтобы мешать винде выйти?
← →
Elen © (2006-12-28 15:29) [5]
> Как бороться?
Ловить другие сообщения. Например WM_QUERYENDSESSION
← →
vain © (2006-12-28 15:34) [6]
> Elen © (28.12.06 15:29) [5]
>
>
> > Как бороться?
>
> Ловить другие сообщения. Например WM_QUERYENDSESSION
>
Нет, только это.
procedure TrayHandler (var Message: TMessage);
begin
If Message.Msg= WM_TRAYICON
Then begin
...
end;
end;
...Хм, а попробую-ка я WM_QUERYENDSESSION поймать.
← →
vain © (2006-12-28 15:40) [7]Поймал, блин...
Поставил на него Application.Terminate, но тепеь при выходе закрываются все приложения, включая мое... и все. А чтобы выйти, надо еще раз выйти.
← →
Elen © (2006-12-28 15:44) [8]
> тепеь при выходе закрываются все приложения, включая мое.
> .. и все
Странный случай. Аresult:=true
стоит?
← →
vain © (2006-12-28 15:45) [9]
>
> Странный случай. А result:=true стоит?
>
Где?
← →
Elen © (2006-12-28 15:53) [10]
> Где?
В обработчике WM_QUERYENDSESSION. Можеш еще словить WM_ENDSESSION, кстати. А вообще почитай SDK там написано про это.
← →
vain © (2006-12-28 15:58) [11]
> Elen © (28.12.06 15:53) [10]
>
>
> > Где?
>
> В обработчике WM_QUERYENDSESSION. Можеш еще словить WM_ENDSESSION,
> кстати. А вообще почитай SDK там написано про это.
Благодарствую величественно - пошел читать.
← →
Alarm © (2006-12-28 16:07) [12]>vain © (28.12.06 14:32)
Иногда следует пользоваться поиском и просматривать сообщения на форуме:(
Хотя бы недавние
http://delphimaster.net/view/2-1167137066/
← →
vain © (2006-12-28 16:08) [13]
> Alarm © (28.12.06 16:07) [12]
>
> >vain © (28.12.06 14:32)
> Иногда следует пользоваться поиском и просматривать сообщения
> на форуме:(
> Хотя бы недавние
> http://delphimaster.net/view/2-1167137066/
Тоже спасибо, похоже, то, что надо.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.01.21;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.045 c