怎么做才能在关机或重启时才会结束程序,不至于要先结束程序才能关机或重启,请高手赐教!!!

解决方案 »

  1.   

    Timer属于非托管资源,可能造成问题,在程序结束的时候应该Dispose程序结束应该可以探测到
      

  2.   

    你的Timer里做下判断..检查当前系统状态..
      

  3.   

    在你的主窗体的代码中添加类似如下的代码段试试看:protected override void WndProc(ref Message m)
    {
    if (m.Msg == 0x11)//WM_QUERYENDSESSION 系统注销前询问的消息
    {
    m.Result = (IntPtr)0;//0不关闭程序;1关闭程序
    return;
    }
    else if (m.Msg == 0x16)//WM_ENDSESSION 系统结束的消息,这个可以不处理。
    {
    }
    base.WndProc(ref m);
    }
      

  4.   

    七楼的方法不错,我改了点,现在点击关机的时候至少可以退出程序了,但是就是不能关机,希望高手帮忙解决下,是什么原因,谢谢!!        protected override void WndProc(ref Message m)
            {
                if (m.Msg == 0x0011)//WM_QUERYENDSESSION 系统注销前询问的消息
                {
                    
                    Application.Exit();
                   m.Result = (IntPtr)0;//0不关闭程序;1关闭程序
                }            base.WndProc(ref m);
                
            }