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

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

Отловить сообщение завршения Windows [D7, WinXP]


AVK ©   (2004-06-04 22:37:00) 

Проблема в том, что моя программа сидит в трее и при ее закрытии выводит диологовое окно подтверждения закрытия. при завершении работы Windows он неможет ее сам закрыть. Надо поймать такое сообщение и не выводить диалог.
P.S. Если такой вопрос уже звучал и я его не заметил просто киньте ссылочку.


AVK   (2004-06-07 16:46:00) [1]

Да вроде единичку надо, но все равно не получается.


AVK   (2004-06-07 16:45:00) [2]

Да вроде единичку надо, но все равно не получается.


Cobalt   (2004-06-06 23:26:00) [3]

в переменной m.Result (кажется) надо возвращать какое-то значение.


AVK   (2004-06-06 22:39:00) [4]

Не помогло. Даже если я делаю так
procedure TForm1.WMQUERYENDSESSION(var M: TMessage);//WM_QUERYENDSESSION
begin
  inherited;
end;

то все равно приложение не может завершить работу(диалог о подтверждении завершения отключен). Если закоментировать данную процедуру, то все работает. Или я как-то некоректно ее обрабатываю или что... я не знаю.


sniknik   (2004-06-06 20:14:00) [5]

попробуй так
procedure TForm1.OnCloseSession(var Mess: TMessage); //WM_QUERYENDSESSION
begin
 try
   inherited;
   Destroy;
 except {NOTHING} end;
end;


Kair   (2004-06-06 20:01:00) [6]

Может у тебя в системе какая-то еще программа сидит, в которой написавший её программист не предусмотрел отлов wm_QueryEndSession...


AVK   (2004-06-06 12:45:00) [7]

Прошу прощения, объявлена процедура WMQUERYENDSESSION, а не WMENDSESSION.


AVK   (2004-06-06 11:13:00) [8]


...
procedure WMENDSESSION(var M:TMessage); messageWM_ENDSESSION;
...
procedure TForm1.WMQUERYENDSESSION( varM: TMessage);
begin
 WINDOWSENDSESSION := true; //глобальная переменная. Если true, то не показываем диалог о закрытии приложения.
 Close;
end;

При завершении работы/перезагрузке Windows приложение закрывается, но Windows не завершает работу и не перезагружается. Чего не хватает в коде?


grom   (2004-06-05 14:29:00) [9]

procedure TForm2.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin

end;


sniknik   (2004-06-05 01:54:00) [10]

http://www.delphimaster.ru/cgi-bin/forum.pl?n=5&search=WM_QUERYENDSESSION


Наверх

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