• 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

      

  • 相关阅读:
    表单上传,接收非文件参数
    CompletableFuture 获取所有task的结果
    CNVD-2021-30167:用友NC BeanShell远程代码执行漏洞复现
    restful接口优化
    中科院院士:初等数学和高等数学,总结起来就这几点<转载>
    Vue打包报错Unexpected token: punc(()解决方案
    Echarts表格三连的效果
    React 项目 或者 Vue项目 中引用 第三方插件的时候,如果不在npm库上,则需把静态文件放入项目进行引用
    ios touch事件 获取 event的 clientX/Y
    GCC | GCC编译器
  • 原文地址:https://www.cnblogs.com/ChYQ/p/6074369.html
Copyright © 2020-2023  润新知