C#之关机事件
一、背景
做了个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#之关机事件的更多相关文章
- WPF捕捉Windows关机事件
private const int SC_SCREENSAVE = 0xF140; private const int WM_QUERYENDSESSION = 0x0011; private boo ...
- 关于 OnCloseQuery: 顺序、不能关机等(所有的windows的广播消息都是逐窗口传递的)——如果一个窗体的OnCloseQuery事件中如果写了代码那么WM_QUERYENDSESSION消息就传不过去了msg.result会返回0,关机事件也就停止了
系统关闭窗体的事件顺序为: OnCloseQuery ----> OnClose ----> OnDestroy 下面的代码说明问题: unit Unit3; interface uses ...
- windows开关机事件
开关机事件.xml <ViewerConfig> <QueryConfig> <QueryParams> <Simple> <BySource&g ...
- WPF 程序检测 windows 关机
1.使用SessionEnding事件 参考MSDN. 2.在需要处理 关机事件中可以注册SessionEnding事件 App.Current.SessionEnding += Current_Se ...
- windows server 2003 禁止开机显示“关闭事件跟踪”
关机事件跟踪(Shutdown Event Tracker)也是Windows server 2003区别于其他工作站系统的一个设置,对于服务器来说这是一个必要的选择,但是对于工作站系 ...
- 加速Windows 2003关机速度的设置方法
indows 2003是目前版本最高的Windows操作系统,虽然其功能比历史上任何一个版都要强,但是其关机操作却给大家带来了一些小麻烦.其实我们完全可以解除这些麻烦,让关机加速 一.关闭关机事件 ...
- windows如何查看电脑开关机记录
如何查看电脑开关机记录 (一)如果你只是想查看一下,从昨天关机到今天开机之间有没有人使用我的计算机,在“开始”菜单的运行”中输入“eventvwr.msc”,或者是按下"开始菜单" ...
- Windows关机过程分析与快速关机
原文链接:http://blog.csdn.net/flyoxs/article/details/3710367 Windows开机和关机慢,很多时候慢得令人抓狂.特别是做嵌入式开发时(如XPE和Wi ...
- android关机流程
关机过程的主要实现在ShutdownThread.java中在关机过程中,主要做了三件事:1.发送关机广播 有的模块可能需要监听手机关机事件,所以在关机时发送关机广播,通知相关模块处理.2.关闭一些主 ...
随机推荐
- Android APP 读取 AndroidManifest.xml 中的版本信息详解
APP都会涉及到版本的问题,Android APP的版本信息保存在AndroidManifest.xml文件的顶部.如下图: 有2个属性表示,“android:versionCode”和“androi ...
- 如何进行安全测试-XSS篇
XSS分为三类:Stored XSS.Reflected XSS.Dom-Base XSS (1)Stored XSS,即存储式跨站攻击,存储式跨站攻击简单来说就是攻击者提交给网站的数据会提交并永久保 ...
- selenium自动化-java-封装断言
封装的断言. 1 package com.baidu.www; import org.testng.Assert; /* * 封装断言 */ public class assertion { stat ...
- 初识javascript变量和基本数据类型
1.1首先,学习使用firebug控制台.设置一下firefox 中的配置选项,以便使控制台中的javascript警告更为严格...以方便我们更好的找出程序中不必要的bug. 1. 在火狐浏览器fi ...
- php 时间加减
<?php date_default_timezone_set('PRC'); //默认时区 echo "今天:",date("Y-m-d",time() ...
- JS数组去重比较
数组去重复是一个常见的需求,我们暂时考虑同类型的数组去重复.主要是理清思路和考虑执行性能. for循环删除后面重复的 var uniqueFor = function(arr) { for (var ...
- 在JS方法中返回多个值的三种方法
在使用JS编程中,有时需要在一个方法返回两个个或两个以上的数据,用下面的几种方法都可以实现: 1 使用数组的方式,如下: <html> <head> <title> ...
- 分形之概率学下的green tree
今天做的是分形之随机概率,可以和以前做的那个抛色子的做法非常相似,抛色子是用随机点数控制图形,今天做的树叶图形只是用概率的做法去控制图形而已,做法是如出一辙的: //图形界面 package ...
- java用selenium库控制chrome
一.简介 selenium是浏览器自动化工具,可以通过程序来控制浏览器行为,这就是selenium!你可以用它做任何你想做的事情.很多时候人们用它测试web应用,但selenium的用途绝不仅限于此. ...
- 【Ckediter】