Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

rxTray не дает Windows завершить работу [D5, Win2k, WinXP]


ppcat ©   (2002-11-06 10:20:00) 

И раньше с этим сталкивался, без rxTray. Помещаем иконку в tray с помощью Windows API и не можем завершить работу, пока не выгрузим это приложение. Но в The Bat эта проблема решена. Мастера знают КАК?

Очень надеюсь.


Song   (2002-11-06 11:48:00) [1]

protected
Procedure IsWindowsShutDown(Var Msg:TMessage); WM_ENDSESSION;
...

Procedure TForm1.IsWindowsShutDown(Var Msg:TMessage);
Begin
inherited;
IF Msg.WParam=1 then
Begin
//Убираем иконку из трея
MainForm.Close; // выгружаем приложение
End;
End;

У меня так работает и в W9x и в NT4.0 и в Win XP. w2k - не пробовал, нету её просто.


ppcat   (2002-11-06 11:13:00) [2]

Действия-то небольшие - вынуть иконку из трея. Но я это пытался делать в обработчиках WM_ENDSESSION и WM_QUERYENDSESSION и приложение пытался там завершить (и Close и Application.Terminate). Все, чего добился - приложение закрывается, но Windows не вырубается, только со 2-го раза, когда приложения уже нет. В хелпе и MSDN пишут, что приложение вырубать в этих обработчиках не нужно, и так пробовал - шиш.


Song   (2002-11-06 11:03:00) [3]

Если действия, выполняемые по завершению работы, небольшие, можно ограничиться сообщением WM_ENDSESSION


ppcat   (2002-11-06 11:00:00) [4]

Это я уже смотрел и понял, что при получении WM_QUERYENDSESSION приложение отвечает нулем и на этом Windows опрос прекращает. Соответственно до WM_ENDSESSION дело не доходит. Пробовал в обработчике WM_QUERYENDSESSION сделать message.result:= 1; - не помогает. Что же здесь можно сделать?


Song   (2002-11-06 10:24:00) [5]

WM_QUERYENDSESSION/ENDSESSION


Наверх

Титульная страница Поиск, карта сайта Написать письмо