看看这个
BOOL ExitWindowsEx(    UINT uFlags, // shutdown operation
    DWORD dwReserved  // reserved
   );

解决方案 »

  1.   

    截获这两个消息WM_QUERYENDSESSION 和 WM_ENDSESSION 
    在消息处理事件中禁止关闭系统
      

  2.   

    窗口关闭的消息是
    wm_close
    你自己定义一个窗口过程来截获这个消息就好了
    procedure wmclose(var msg:Twmclose);message wm_close;
    然后自己写代码!
    系统关闭的
    就是调用一个楼上说的api函数,
      

  3.   

    procedure WMQueryEndSession(var Msg: TWMQueryEndSession);
      message WM_QUERYENDSESSION;begin
      Msg.Result := 0;
      //添加处理代码
    end;