jak wykryć zamykanie windowsa ???

0

witam
Na poczatek małe sprosotowanie szukałem bo na tyle głupi nie jestem i nie znalazłem na moj temat odp.
Wiec jak wykryć zamykanie windowsa ???
chodzi mi o to ze jesli windows bedzie sie zamyakał lub resetował to by program rozpoznał ze sie zmykał i program sie wylaczy.

jesli jednak byly takie posty to prosze o linki

0

Poczytaj o komunikatach: WM_QUERYENDSESSION, WM_ENDSESSION (Jakbyś nie wiedział gdzie, to mówie że w Windows SDK)

0

Nie szukaj tu masz całość:

Aby przechwycić moment zamykania Windows należy nadpisać procedurę przechwytującą komunikaty.
...
private
procedure WndProc(var Message: TMessage);override;
end;

var
Form1: TForm1;

implementation

procedure TForm1.WndProc(var Message: TMessage);
begin
{sprawdzenie czy to komunikat "zamykania Windows"}
if Message.Msg = WM_QUERYENDSESSION then
begin
{tutaj piszemy co chcemy :). Należy także wprowadzić akcje pozwalającą lub nie pozwalającą zamknąć "system" Windows}
end;
inherited WndProc(Message);
end;

To chyba wszystko ;p

0

procedure TForm1.WndProc(var Message: TMessage);
begin
{sprawdzenie czy to komunikat "zamykania Windows"}
if Message.Msg = WM_QUERYENDSESSION then
begin
{tutaj piszemy co chcemy . Należy także wprowadzić akcje pozwalającą lub nie pozwalającą zamknąć "system" Windows}
end;
inherited WndProc(Message);
end;

WM_QUERYENDSESSION nie jest komunikatem oznaczającym zamykanie systemu Windows. Musisz dorobic jescze jednego IFa sprawdzającego czy przysłany został komunikat WM_ENDSESSION, bo to on oznacza zamykanie Windowsa, tamten wcześniejszy dotyczył zpytania o zezwolenie na zamknięcie.

0

Komponent AppEnd wykrywa zamkniencie windowsa i sam zamyka program.

0

wielkie dzieki wam wszystkim [cya]

[browar] [browar]

0

WM_QUERYENDSESSION nie jest komunikatem oznaczającym zamykanie systemu Windows. Musisz dorobic jescze jednego IFa sprawdzającego czy przysłany został komunikat WM_ENDSESSION, bo to on oznacza zamykanie Windowsa, tamten wcześniejszy dotyczył zpytania o zezwolenie na zamknięcie.

Jeszcze tylko dodam, że przy WM_QUERYENDSESSION pod WinNT (nie pamiętam jak w innych) trzeba przesłać potwierdzenie zamknięcia. W przeciwnym razie system nie będzie chciał się zamknąć (w GG jest ten błąd :( ).
I dołączam się do rady: poczytaj w Windows SDK.

1 użytkowników online, w tym zalogowanych: 0, gości: 1