一、背景

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

二、正文

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

    

  双击会在“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

  

C#之关机事件的更多相关文章

  1. WPF捕捉Windows关机事件

    private const int SC_SCREENSAVE = 0xF140; private const int WM_QUERYENDSESSION = 0x0011; private boo ...

  2. 关于 OnCloseQuery: 顺序、不能关机等(所有的windows的广播消息都是逐窗口传递的)——如果一个窗体的OnCloseQuery事件中如果写了代码那么WM_QUERYENDSESSION消息就传不过去了msg.result会返回0,关机事件也就停止了

    系统关闭窗体的事件顺序为: OnCloseQuery ----> OnClose ----> OnDestroy 下面的代码说明问题: unit Unit3; interface uses ...

  3. windows开关机事件

    开关机事件.xml <ViewerConfig> <QueryConfig> <QueryParams> <Simple> <BySource&g ...

  4. WPF 程序检测 windows 关机

    1.使用SessionEnding事件 参考MSDN. 2.在需要处理 关机事件中可以注册SessionEnding事件 App.Current.SessionEnding += Current_Se ...

  5. windows server 2003 禁止开机显示“关闭事件跟踪”

    关机事件跟踪(Shutdown   Event   Tracker)也是Windows   server   2003区别于其他工作站系统的一个设置,对于服务器来说这是一个必要的选择,但是对于工作站系 ...

  6. 加速Windows 2003关机速度的设置方法

    indows 2003是目前版本最高的Windows操作系统,虽然其功能比历史上任何一个版都要强,但是其关机操作却给大家带来了一些小麻烦.其实我们完全可以解除这些麻烦,让关机加速   一.关闭关机事件 ...

  7. windows如何查看电脑开关机记录

    如何查看电脑开关机记录 (一)如果你只是想查看一下,从昨天关机到今天开机之间有没有人使用我的计算机,在“开始”菜单的运行”中输入“eventvwr.msc”,或者是按下"开始菜单" ...

  8. Windows关机过程分析与快速关机

    原文链接:http://blog.csdn.net/flyoxs/article/details/3710367 Windows开机和关机慢,很多时候慢得令人抓狂.特别是做嵌入式开发时(如XPE和Wi ...

  9. android关机流程

    关机过程的主要实现在ShutdownThread.java中在关机过程中,主要做了三件事:1.发送关机广播 有的模块可能需要监听手机关机事件,所以在关机时发送关机广播,通知相关模块处理.2.关闭一些主 ...

随机推荐

  1. Java公众号推荐 - BeJavaGod

    今天新创建了一个java的公众号,会经常更新java的文章,有兴趣的朋友关注一下吧- 主要内容基本是跟本微博同步的 不管是做java的新手还是高手,内行还是外行,java还是非java,一起关注,一起 ...

  2. jdbc java数据库连接 4)PreParedStatement接口 之 区别和例子

    Statement 和 PreparedStatement 的区别: 1)语句不同 PreparedStatement需要预编译以及需要参数 2)由于PreparedStatement有缓存区,所以效 ...

  3. PAT 1035. 插入与归并(25)

    根据维基百科的定义: 插入排序是迭代算法,逐一获得输入数据,逐步产生有序的输出序列.每步迭代中,算法从输入序列中取出一元素,将之插入有序序列中正确的位置.如此迭代直到全部元素有序. 归并排序进行如下迭 ...

  4. Eclipse swt开发环境搭建

    原料: eclipse swt.下载链接为: Eclipse 4.6.2 Release Build: 4.6.2 配置说明: Developing SWT applications using Ec ...

  5. 微信小程序入门正确姿势(一)

    [未经作者本人同意,请勿以任何形式转载] >>>前言 这是 [认真学编程] 系列的 第4篇 文章(微信小程序入门系列),欢迎点赞分享.写留言,这些都是对我最好的支持. 本系列适合有一 ...

  6. Python基础+Pythonweb+Python扩展+Python选修四大专题 超强麦子学院Python35G视频教程

    [保持在百度网盘中的, 可以在观看,嘿嘿 内容有点多,要想下载, 回复后就可以查看下载地址,资源收集不易,请好好珍惜] 下载地址:http://www.fu83.cc/ 感觉文章好,可以小手一抖 -- ...

  7. Java学习笔记-多线程-创建线程的方式

    创建线程 创建线程的方式: 继承java.lang.Thread 实现java.lang.Runnable接口 所有的线程对象都是Thead及其子类的实例 每个线程完成一定的任务,其实就是一段顺序执行 ...

  8. 使用js实现显示系统当前时间并实现倒计时功能并触发模态框(遮罩)功能

    常常在我们的网页中需要倒计时来触发一些函数,例如遮罩等,在本项目中,通过使用jquery,bootstrap,实现了显示系统当前时间,并且实现了倒计时的功能,倒计时实现后将会弹出模态框(遮罩层).模态 ...

  9. linux dd 命令详解

    dd 是 Linux/UNIX 下的一个非常有用的命令,作用是用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换. 名称: dd 使用权限: 所有使用者dd 这个指令在 manual 里的定义是 ...

  10. maven-各配置文件详解

    1.setting.xml http://www.cnblogs.com/yangxia-test/p/4409736.html <?xml version="1.0" en ...