Форум: "WinAPI";
Текущий архив: 2002.12.05;
Скачать: [xml.tar.bz2];
Вниз
Отловить завершение винды Найти похожие ветки
← →
Miker (2002-10-23 23:57) [0]У меня безформенное приложение. И поэтому делаю следующее, чтобы она выполнялась:
program MyProg;
uses ....;
-----
Мои действия...
------
repeat
PeekMessage(Msg,0,0,0,pm_noremove);
case Msg.message of
WM_CLOSE:break;
WM_QueryEndSession:break;
WM_QUIT:Close;
end;
// Application.ProcessMessages;
// sleep(50);
until false;
----------
мои действия, которые я хочу выполнить.
Дак вот, при завершении виндовсов, операторы после until false не выполняются, т.е. программа закрывается виндой насильно (если правильно выражаюсь). Нужно это исправить.
← →
Song (2002-10-24 09:48) [1]На WM_QUERYENDSESSION вернуть отрицательный результат. Какой - смотрите в хэлпе по SDK.
← →
Miker (2002-10-25 00:38) [2]А как его вернуть? Чего-нибудь наподобии Result:=0 у TMsg нет. (прошу прощения за неграмотность).
← →
linage (2002-10-25 00:52) [3]необходимо написать обработчик сообщения и посадить его на WM_QUERYENDSESSION.
procedure WMExitWindows(var Message: TMessage); message WM_QUERYENDSESSION;
procedure WMExitWindows(var Message: TMessage);
begin
Message.Result:=0;
end;
← →
Miker (2002-10-25 22:47) [4]To Song:
Я понимаю, что конкретного ответа давать не хочешь (и, вроде, правильно), но для меня твоей информации недостаточно для решения моей проблемы (знаю, что ответ должен быть=0, а как собственно ответить?). Подскажи, пожалуйста, конкретней.
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2002.12.05;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.008 c