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

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

Завершение Работы Windows [D5, D6, Win95/98, Win2k]


werewolfru ©   (2002-08-06 16:28:00) 

Пишу прогу по сетевому аудиту и позарез нужна процедура, которая вызывается при начале завершения работы ОС или же при попытке ОС завершить работу моего резидента насильно. Требуется вставить очень короткую процедуру (запись в файл), так что времени от начала завершения работы ОС до остановки моей проги должно хватить. Буду очень блгодарен!


andrey_pst   (2002-08-08 09:36:00) [1]

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;

type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
FClose : boolean;
procedure WMQueryEndSession(var Msg : TWMWindowPosChanging);
message WM_QUERYENDSESSION;
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);
begin
FClose := true;
end;

procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
if FClose then
CanClose := true
else begin
CanClose := false;
FClose := true;
end;
end;

//:::: обработчик сообщения WM_QUERYENDSESSION ::::::::::::::::::::
procedure TForm1.WMQueryEndSession(var Msg : TWMWindowPosChanging);
begin
if MessageDlg(" Обнаружена попытка выхода из Windows !!!" + #13 + "Закрыть приложение и выйти ? (Yes/No)", mtConfirmation, [mbYes, mbNo], 0) = mrYes then
FClose := true
else
FClose := false;

inherited;
end;

end.


Song   (2002-08-08 09:31:00) [2]

2Юрий Зотов © (08.08.02 08:51)
"Требуется вставить очень короткую процедуру (запись в файл)" - успеется выполниться в любом случае, поэтому я и не стал акцентировать внимание на WM_QUERYENDSESSION


Юрий Зотов   (2002-08-08 08:51:00) [3]

А еще лучше - WM_ QUERYENDSESSION.



Song   (2002-08-06 16:39:00) [4]

Обрабатывай событие WM_ENDSESSION


Наверх

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