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

Вниз

Сообщение о закрытии от Винды.   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.045 c
2-1167353312
4ert
2006-12-29 03:48
2007.01.21
Помогите найти Ошибку!!!!!!!!!!!!!!!!!!!!!!


2-1168004575
pixelweb
2007-01-05 16:42
2007.01.21
Дата и время создания файла, Модификация


15-1167147562
Ученик чародея
2006-12-26 18:39
2007.01.21
За поиск НЛО в сетях пентагона хакеру грозит 70 лет тюрьмы.


15-1167219353
Руслан56
2006-12-27 14:35
2007.01.21
как подключить Библиотеки BDE


2-1167259513
TStas
2006-12-28 01:45
2007.01.21
Как все-таки поселить программу в трей?