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

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM