C#之关机事件

时间:2022-11-18 23:32:22

一、背景

  做了个APP,通过向下位机发送串口数据,然后通过串口去控制多路光源,现在的问题来了,若是电脑强行关机,而APP又没在电脑关机前做任何动作,导致电脑已经关机了,而下位机控制的灯源还在工作。所以需要C#在截获到关机信息时发送串口数据通知下位机关闭灯源。

二、正文

  在“Form1.cs[设计]”界面下,选中要截获关机信息的窗体。(所写的APP只有一个窗体,所以没有父子窗体概念。)在右下角的属性框点击“事件”,并选中“FormClosing”,如下图:

    C#之关机事件

  双击会在“Form1.cs”中生成如下代码:

  

private void VOUTCTRL_FormClosing(object sender, FormClosingEventArgs e)
{
// 在该函数内做窗口关闭前要做的操作。
// 以下代码为自行添加部分

switch (e.CloseReason)
{
case CloseReason.ApplicationExitCall:
MessageBox.Show(
"Exit()方法被调用!");
break;
case CloseReason.FormOwnerClosing:
MessageBox.Show(
"所有者窗体正在关闭!");
break;
case CloseReason.MdiFormClosing:
MessageBox.Show(
"此多文档界面 (MDI) 窗体的父窗体正在关闭!");
break;
case CloseReason.None:
MessageBox.Show(
"关闭原因未定义或者无法确定!");
break;
case CloseReason.TaskManagerClosing:
MessageBox.Show(
"任务管理器正在关闭应用程序!");
break;
case CloseReason.UserClosing:
e.Cancel
= true;
MessageBox.Show(
"用户正在通过用户界面 (UI) 关闭该窗体!");
break;
case CloseReason.WindowsShutDown:
MessageBox.Show(
"操作系统正在关闭所有应用程序以便准备关机!");
break;
default:
break;
}
}

   该段代码在出现的以上“7”种事件后就会被调用。

三、参考文献  

  C#捕获windows关机事件,在系统关机前做一些自己想做的事

    http://blog.csdn.net/testcs_dn/article/details/42365381

 

至此,记录完毕。

 

记录时间:2016年11月17日

记录地点:深圳WZ