Man könnte WM_QUERYENDSESSION abfangen und Windows kein "go" geben zum weiteren Runterfahren.
Delphi-Quellcode:
type
TForm1 = class(TForm)
private
{ Private-Deklarationen }
procedure WMQUERYEBDSESSION(var msg: TMessage); message WM_QUERYENDSESSION;
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.WMQUERYEBDSESSION(var msg: TMessage);
begin
msg.Result := Integer(FALSE);
end;