怎么拦截Windows的关机/重启消息??
第一个告诉我正确答案的给10分!

解决方案 »

  1.   

    具体我不知道,但可能是windows钩子
      

  2.   

    在wind2k下是WM_POWERBROADCAST,在你的程序中拦截此消息即可
    procedure WMPowerBroadcast(var message: TMessage); message WM_POWERBROADCAST;procedure TForm1.WMPowerBroadcast(var message: TMessage);
    const SkipNextPowerMsg:boolean=True;
    begin
     if SkipNextPowerMsg then
      begin
       SetForegroundWindow(Self.Handle);
       if Application.MessageBox('是否关闭系统?','警告',MB_OKCANCEL + MB_DEFBUTTON2)<>IDOK then
       begin
        message.Result := BROADCAST_QUERY_DENY;
        SkipNextPowerMsg:=not SkipNextPowerMsg;
       end
       else
        Close;
      end
     else
      SkipNextPowerMsg:=not SkipNextPowerMsg;
    end; 
      

  3.   

    on " message WM_POWERBROADCAST "