При закрытии сессии можно из-под
WMQueryEndSession слать, до установки результата в единицу ( Msg.Result:= 1; )
а в
OnCloseQuery так
Код:
procedure TfrmMain.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
... // вот здесь шлём
CanClose:= true;
end;
если делать быстро, то сработает