如何拦截关机消息?我想在关机时候给个提示。。选择性的关机。

解决方案 »

  1.   

    procedure winexit(var msg:Tmessage);message WM_QUERYENDSESSION; 
      

  2.   

    procedure TForm1.winexit(var msg: Tmessage);
     begin
    showmessage('关机了!');
       end;
      

  3.   

    在procedure中声明一个
    procedure WMQueryEndSession (var Message: TMessage); message WM_QUERYENDSESSION ;然后实现部分:
    procedure TForm1.WMQueryEndSession (var Message: TMessage);
    var
      Handled : Boolean;
    begin
      { 接收到消息时的通知}
      if messagedlg('确定要关机?',mtconfirmation,mbyesnocancel,0)= mryes then
              Handled:=true
            else
              Handled:=false;end;
      

  4.   

    WM_QUERYENDSESSION 如果强制关机,这消息就没用了.
      

  5.   

    .................
    如果直接按RESET说啥也白费~
      

  6.   

    老问题了hook api,hook  到ExitWindowsEx这个关机函数就可以了,再转为自己定义的函数做处理
      

  7.   

    通过WM_QUERYENDSESSION消息应该可以实现