在C#中怎样截获系统的关机消息?我在设计一个程序,电脑关机时,运行这个程序,然后在进入关机状态?在网上有使用组策略的,是否可以在C#中象操作注册表一样,造作组策略或者截取系统的关机消息

解决方案 »

  1.   

    在closing事件中有一个系统关机的项
      

  2.   

    protected override void WndProc(ref   Message m)
    {
        switch (m.Msg)
        {
            case WM_QUERYENDSESSION:
                // 你的处理代码
                base.WndProc(ref   m);
                break;
            default:
                base.WndProc(ref   m);
                break;
         }
    }
      

  3.   

    补充常量的定义
    private const int WM_QUERYENDSESSION = 0x0011;  //关机消息定义
      

  4.   

            private void Form1_FormClosing(object sender, FormClosingEventArgs e)
            {
                if (e.CloseReason == CloseReason.WindowsShutDown)
                {
                    处理;
                }
            }