Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2005.09.04;
Скачать: [xml.tar.bz2];

Вниз

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

 
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 вся ветка

Форум: "WinAPI";
Текущий архив: 2005.09.04;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.01 c
3-1122226226
sach
2005-07-24 21:30
2005.09.04
объекты и БД


4-1121384606
Ruslan_86
2005-07-15 03:43
2005.09.04
Поставить программу рядом с часами


3-1122446270
Aks13
2005-07-27 10:37
2005.09.04
Delphi7 + Oracle9


3-1122375671
Dyusha
2005-07-26 15:01
2005.09.04
Обратная командa Top


3-1122290285
Layner
2005-07-25 15:18
2005.09.04
FIREBIRD / COLLATE PXW_CYRL





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский