![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
определение события завершение работы 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