Delphi Tips & Tricks softsale > Delphi Tips & Tricks      

< poprzednia rada następna rada >

Jak zabezpieczyć się przed zamknięciem Windows w trakcie działania aplikacji?

Aby zabezpieczyć się przed próbą zamknięcia systemu Windows w trakcie działania naszej aplikacji należy przechwycić komunikat WM_QUERYENSESSION wysyłany przez Windows do wszystkich aplikacji i odpowiednio go obsłużyć jeżeli na przykład nie chcemy aby system został zamknięty w trakcie jakiegoś procesu w naszej aplikacji.


...

type
  TForm1 = class(TForm)
  private
  procedure WMQueryEndSession(var Msg:TWMQueryEndSession); message WM_QUERYENDSESSION;
     { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}
procedure TForm1.WMQueryEndSession(var Msg: TWMQueryEndSession);
begin
if MessageBox(Handle,'Czy można zakończyć aplikację', nil, MB_OKCANCEL)= IDCANCEL then
msg.result:=0 else  msg.result:=1;
end;

Jeżeli pozwalamy na zamknięcie Windows ustawiamy msg.result na wartość 1 w przeciwnym wypadku na wartość zero.


SOFTSALE - Oprogramowanie i Szkolenia
softsale@softsale.com.pl

03-565 Warszawa , ul. Borzymowska 43 lok. 301C
tel/fax:4084840,GSM:0607612428