Вниз
Скачать: CL | DM;

Обработать закрытие приожения   Найти похожие ветки 

 
Dot   (2005-07-14 22:37) [0]

Здравствуйте глубокоуважаемые.
Помогите пожалуйста ответом на вопрос.
Как мне обработать событие закрытия приложения. ТО есть приложение вечно висит в процессах, но при завершении работы ОС (т.е. ОС шлет сообщения WM_CLOSE или вроде того всем приложениям) мое приложение совершало бы какие либо действия. Планировщик так сказать.

я думаю что то вроде
if GetMessage(WM_CLOSE) then
ну в обем как правильно?


 
Просто Джо ©   (2005-07-14 22:41) [1]

Например, обрабатывать событие формы OnClose или OnCloseQuery. Кроме того, не помешало бы обрабатывать сообщение WM_QUERYENDSESSION. Например, так:

 TForm1 = class(TForm)
 private
   procedure WmQueryEndSession (var Message: TMessage); message WM_QUERYENDSESSION;
 public
 end;
...
procedure TForm1.WmQueryEndSession(var Message: TMessage);
begin
 // разрешаем завершение сеанса
 Message.Result := 1;
end;


 
dot   (2005-07-14 22:46) [2]

Извините поправка, я сказал вишу как процесс. у меня нет формы.


 
Просто Джо ©   (2005-07-14 22:53) [3]

Тогда в цикле выборки сообщений нужно фильтровать сообщение WM_QUERYENDSESSION. Или что значит "вишу как процесс"?


 
Dot   (2005-07-14 23:18) [4]

НУ так мне и нужен просто синтаксис команды, какое сообщение системы пришло моему приложению


 
Просто Джо ©   (2005-07-15 03:35) [5]

Лично я (а я не знаток в программировании на "чистом" WinAPI) могу предложить навскидку несколько вариантов цикла обработки сообщений. Все они сводятся к банальному
  while(GetMessage(msg, 0, 0, 0)) do
  begin
     TranslateMessage(msg);
     DispatchMessage(msg);
  end;
с вариациями.
Но, пока ты не обнародовал свой вариант того, что ты называешь "у меня нет формы" и "приложение вечно висит в процессах" лично мне жаль своего времени на растолковывание непонятно чего и непонятно зачем.


 
Просто Джо ©   (2005-07-15 03:41) [6]


> [4] Dot   (14.07.05 23:18)
> НУ так мне и нужен просто синтаксис команды, какое сообщение
> системы пришло моему приложению

Нет никакой такой "комманды". Забудь. Есть принципы программирования под конкретной платформой.


 
alpet ©   (2005-07-15 13:48) [7]

Твое приложение врядли сможет отловить "событие" завершения, особенно с учетом количества способов завершения.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.038 c
4-1121706798
Trimp
2005-07-18 21:13
2005.09.04
Чтение из реестра переменных с типом REG_MULTI_SZ


1-1124088869
Oleg_
2005-08-15 10:54
2005.09.04
как обеспечить прозрачность рисунка при уменьшении цветности


14-1123873434
Piter
2005-08-12 23:03
2005.09.04
Сколько будет 2 х 2 ?


3-1122306554
redlord
2005-07-25 19:49
2005.09.04
dbgrid + sqldataset


5-1095271051
Константинов
2004-09-15 21:57
2005.09.04
Перехват сообщений при создании компонентов




   Наверх