poszperalem troche po sieci i poskladalem takie cos
procedure TForm1.ClosingWin(var Message: TMessage);
begin
if Message.Msg = WM_QUERYENDSESSION then
begin
WinExec('shutdown -a', SW_HIDE);
end;
DefaultHandler(Message)
end;
niestety to nie chce dzialac :( komputer nadal sie normalnie wylacza... a nie powinien...