Форум: "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