![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Сообщение о закрытии от Винды. [D7, XP]
vain © (2006-12-28 14:32:00)Проблема такая. Полжил, я, значит иконку в трей.
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 ловит сообщения не только от иконки в трее, насколько я понимаю. Дело в том, что при выходе из системы, программа не закрывается и выход отменяется. Как быть? Подскажите, пжл.
vain (2006-12-28 16:08:00) [1]
> Alarm © (28.12.06 16:07) [12]
>
> >vain © (28.12.06 14:32)
> Иногда следует пользоваться поиском и просматривать сообщения
> на форуме:(
> Хотя бы недавние
> http://www.delphimaster.ru/cgi-bin/forum.pl?id=1167137066&n=18
Тоже спасибо, похоже, то, что надо.
Alarm (2006-12-28 16:07:00) [2]>vain © (28.12.06 14:32)
Иногда следует пользоваться поиском и просматривать сообщения на форуме:(
Хотя бы недавние
http://www.delphimaster.ru/cgi-bin/forum.pl?id=1167137066&n=18
vain (2006-12-28 15:58:00) [3]
> Elen © (28.12.06 15:53) [10]
>
>
> > Где?
>
> В обработчике WM_QUERYENDSESSION. Можеш еще словить WM_ENDSESSION,
> кстати. А вообще почитай SDK там написано про это.
Благодарствую величественно - пошел читать.
Elen (2006-12-28 15:53:00) [4]
> Где?
В обработчике WM_QUERYENDSESSION. Можеш еще словить WM_ENDSESSION, кстати. А вообще почитай SDK там написано про это.
vain (2006-12-28 15:45:00) [5]
>
> Странный случай. А result:=true стоит?
>
Где?
Elen (2006-12-28 15:44:00) [6]
> тепеь при выходе закрываются все приложения, включая мое.
> .. и все
Странный случай. Аresult:=trueстоит?
vain (2006-12-28 15:40:00) [7]Поймал, блин...
Поставил на него Application.Terminate, но тепеь при выходе закрываются все приложения, включая мое... и все. А чтобы выйти, надо еще раз выйти.
vain (2006-12-28 15:34:00) [8]
> 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 поймать.
Elen (2006-12-28 15:29:00) [9]
> Как бороться?
Ловить другие сообщения. Например WM_QUERYENDSESSION
vain (2006-12-28 15:18:00) [10]
> А что такого твоя прога делает, что может мешать винде выходить?
Вроде, ничего. А что такое может делать прога, чтобы мешать винде выйти?
Elen (2006-12-28 15:16:00) [11]
> при выходе из системы, программа не закрывается и выход
> отменяется
А что такого твоя прога делает, что может мешать винде выходить?
vain (2006-12-28 15:16:00) [12]
> На закрытие формы убивайте иконку
Это я и так делаю.
Мне кажется, что все сообщения кроме WM_TRAYICON игнорируются, в том числе, и сообщение от винды, которое она посылает при выходе. Так? Как бороться?
Ыеууз (2006-12-28 15:04:00) [13]На закрытие формы убивайте иконку