Hallo
bei mir ist das so gelöst und klappt bisher ganz gut.
Delphi-Quellcode:
procedure TMainForm.FormCreate(Sender: TObject);
begin
...
Application.HookMainWindow(WMEndSession);
...
end;
procedure MainForm.FormDestroy(Sender: TObject);
begin
...
Application.UnhookMainWindow(WMEndSession);
...
end;
function TMainForm.WMEndSession(var Message: TMessage):Boolean;
begin
if (Message.Msg=WM_ENDSESSION) and TWMEndSession(Message).EndSession then
begin
SessionEnd:=True; // diese kann dann ausgewertet werden
...
end;
Result:=False;
end;
Gruß Bernd