Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.09.04;
Скачать: 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 вся ветка

Текущий архив: 2005.09.04;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.037 c
4-1121495304
Михаил(Киров)
2005-07-16 10:28
2005.09.04
Блокировка клавиатуры


3-1122030759
GekaNaz
2005-07-22 15:12
2005.09.04
Настройка Yaffil сервера


4-1121430528
JohnSmith
2005-07-15 16:28
2005.09.04
Работа с Mutex


14-1123669090
ocean
2005-08-10 14:18
2005.09.04
Надо передохнуть


5-1097234297
LAndrey
2004-10-08 15:18
2005.09.04
трабл в DBGridEh