Главная страница
    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
2-1123259827
MAVr
2005-08-05 20:37
2005.09.04
Cмена атрибутов файлов


1-1124096249
Vir
2005-08-15 12:57
2005.09.04
Как определить какой контрол вызвал popup


4-1121531579
ychenick
2005-07-16 20:32
2005.09.04
USB и Delphi и всё-всё-всё


14-1123573058
boriskb
2005-08-09 11:37
2005.09.04
Есть у меня "пунктик"


4-1121321216
Хинт
2005-07-14 10:06
2005.09.04
Значение переменной чужого приложения





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский