Habs jetzt so gelöst:
Delphi-Quellcode:
var
Done: Boolean;
...
...
procedure TForm1.WMQueryEndSession;
begin
if not Done then
begin
Msg.Result := 0;
end
else
begin
Msg.Result := 1;
end;
end;
procedure TForm1.FormPaint(Sender: TObject);
begin
Hide;
Done := False;
end;
procedure TForm1.WMEndSession;
begin
ChangeResolution(640, 480, 32);
Show;
sleep(5000);
ChangeResolution(1280, 1024, 32);
Hide;
Done := True;
ExitWin(EWX_REBOOT);
end;
Da beim Aufruf von ExitWin(EWX_REBOOT) die Message WMQueryEndSession erneut gesendet wird, verwende ich eine globale Variable vom Typ Boolean um festzustellen ob die Aktion bereits durchgeführt wurde.