Вниз
Скачать: CL | DM;

Отловить завершение винды   Найти похожие ветки 

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

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.011 c
4-14863
WDN
2002-10-23 09:23
2002.12.05
Старт сервиса


1-14502
Андрусь
2002-11-25 20:49
2002.12.05
ещё раз об этом


1-14596
aterm
2002-11-27 14:55
2002.12.05
Help!


3-14441
Ильнур
2002-11-18 14:15
2002.12.05
InterBase


3-14371
Jony
2002-11-14 17:27
2002.12.05
И дата и время в DBDateTimeEditEh




   Наверх