解决方案 »

  1.   

    处理 WM_QUERYENDSESSION 消息
      

  2.   

    http://blog.csdn.net/ouailuo143/article/details/6534939
      

  3.   

    我顶,求助啊!!!!!!我现在改为消息拦截了,也是一样的问题,可以拦截到消息,但是无法取消if (m.Msg == WM_QUERYENDSESSION)
                {
                    var result = MessageBox.Show("XXXXXXXXXXXXXX", "提示", MessageBoxButtons.OKCancel);
                    if (result == System.Windows.Forms.DialogResult.OK)
                    {
                        m.Result = (IntPtr)1; //返回1,让系统继续关机
                        this.tsmiExit_Click(null, null); // 退出程序
                    }
                    else
                    {
                        m.Result = (IntPtr)0;  //这句貌似没啥用
                    }
                    _lp = m.LParam;
                }            base.WndProc(ref m);
    该怎么破啊今天要交工了而且貌似XP下拦截弹出消息都不起作用(虚拟机中)
      

  4.   

    返回1才是阻止关机
    http://blog.csdn.net/ouailuo143/article/details/6534939
      

  5.   

    貌似你的例子也是返回0才能阻止关机,关键是这个例子我要用哪种SDK?
      

  6.   

    貌似有些关机是拦截不了的,如果不是窗口程序,应该是收不到WM_QUERYENDSESSION消息的吧?