实现效果:
知识运用:
在系统执行关机操作时会向正在运行的应用程序发送一个消息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("允许关闭计算机"); }