- /*
- 1:通过点击控制台的关闭按钮
- 2:按Ctrl+C,强制性关闭控制台
- */
- using System;
- using System.Collections.Generic;
- using System.Text;
- using System.Runtime.InteropServices;
- using System.Threading;
- namespace ConsoleClose
- {
- public delegate bool ControlCtrlDelegate(int CtrlType);
- class Program
- {
- [DllImport("kernel32.dll")]
- private static extern bool SetConsoleCtrlHandler(ControlCtrlDelegate HandlerRoutine, bool Add);
- static ControlCtrlDelegate newDelegate = new ControlCtrlDelegate(HandlerRoutine);
- public static bool HandlerRoutine(int CtrlType)
- {
- switch (CtrlType)
- {
- case 0:
- Console.WriteLine("0工具被强制关闭"); //Ctrl+C关闭
- //相关代码执行
-
- break;
- case 2:
- Console.WriteLine("2工具被强制关闭");//按控制台关闭按钮关闭
- //相关代码执行
-
- break;
- }
- return false;
- }
- static void Main(string[] args)
- {
- bool bRet = SetConsoleCtrlHandler(newDelegate, true);
- //这后面写程序该做的事情
- while(true)
- {
- Console.WriteLine("请关闭!");
- Thread.Sleep(5000);
- }
- }
- }
- }
C# 控制台捕获关闭事件的代码
最新推荐文章于 2023-08-09 13:54:55 发布