Detecting Windows Shutdown

You can use the following procedure to detect if Windows is shutting down. If your application needs to save data before allowing the shutdown to continue you can do that, then allow Windows to shutdown normally.

procedure TfrmMain.WMQueryEndSession(var Message : 
                                 TWMQueryEndSession);
begin


 // Let the inherited message handler respond first
 inherited;

 if DataHasChanged then begin
    MessageBeep(MB_ICONQUESTION);
    case MessageDlg('The current Windows 
           session is ending.  Save league changes?',
           mtConfirmation, [mbYes,mbNo,mbCancel],0) of
    mrYes    : begin
                //Your data-saving code or method 
                //call goes here
                Message.Result := 1;
               end;
    mrNo     : Message.Result := 1;
    mrCancel : Message.Result := 0;
      end; {case} end
   else
      Message.Result := 1;
end;
Published At
Categories with Web编程
comments powered by Disqus