Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

определение события завершение работы Windows [D4, D5, D6, Win95/98, Win2k]


wolfic ©   (2003-08-12 17:49:00) 

Возникла следующая проблемка необходимо программно определять момент отключения/перезагрузки Windows сделать свои дела и продолжить отключение


Vova 777   (2003-08-16 16:52:00) [1]

{When Windows is about to shut down, it sends
a WM_QueryEndSession to all open applications.
To detect (and prevent shutdown), we must
define a message handler to this message. Put
this definition on the private section of the
main form:}

procedure WMQueryEndSession
(var Msg : TWMQueryEndSession);
message WM_QueryEndSession;

{Also, to prevent Windows shutting down
put this method in the implementation
section of the unit:}

procedure TForm1.WMQueryEndSession
(var Msg : TWMQueryEndSession);
begin
if MessageDlg("Close Windows ?",
mtConfirmation,
[mbYes,mbNo], 0) = mrNo then
Msg.Result := 0
else
Msg.Result := 1;
end;

{To detect Windows Shutdown, we must trap the
WM_EndSession message.
Declare a message handling procedure
in your main Form"s Private section: }

Procedure WMEndSession
(var Msg : TWMEndSession);
message WM_ENDSESSION;

{Also, add the following procedure to the
implementation section of your Unit:}

procedure TForm1.WMEndSession
(var Msg : TWMEndSession);
begin
if Msg.EndSession = TRUE then
ShowMessage("Windows is shutting down " + #10#13
+ "at " + FormatDateTime("c", Now));
inherited;
end;


Spawn   (2003-08-16 08:36:00) [2]

По идее сообщения рассылаются окнам в их Z-последовательности. Тогда, по идее, нужно, чтобы твое приложение было первым в этой последовательности. Смотри SetWindowPos.


wolfic   (2003-08-15 11:47:00) [3]

Дело в том что нужно узнать это раньше всех программ - просто система успевает выгрузить часть программ а среди них и программы для доступа к дискам и следоватльно облом к ним достучаться нельзя!!!!!


Anatoly Podgoretsky   (2003-08-12 17:56:00) [4]

wm_queryendsession


Наверх

Титульная страница Поиск, карта сайта Написать письмо