禁止用户关闭计算机

Posted on 2019-01-22 10:53  努力成长静待花开  阅读(264)  评论(0编辑  收藏  举报

实现效果:

  

知识运用:

  在系统执行关机操作时会向正在运行的应用程序发送一个消息WM_QUERYENDSESSION

  通知应用程序要关机了   如果消息返回的是0那么就不会自动关机

  重写WndProc方法

  protected virtual void WndProce (ref Message m)

  

实现代码:

        private int isClose = 0;                            //声明一个变量表是是否关闭
        private const int WM_QUERYENDSESSION = 0x0011;      //系统发出的关闭命令
        protected override void WndProc(ref Message m)      //用于处理Windows消息
        {
            switch (m.Msg)                                  //获取消息值
            {
                case WM_QUERYENDSESSION:                    
                    m.Result = (IntPtr)isClose;             //响应消息处理
                    break;
                default:                                    //默认执行
                    base.WndProc(ref m);
                    break;
            }
        }
        private void button1_Click(object sender, EventArgs e)
        {
            isClose = 0;
            MessageBox.Show("禁止关闭计算机");
        }
        private void button2_Click(object sender, EventArgs e)
        {
            isClose = 1;
            MessageBox.Show("允许关闭计算机");
        }