C#控制台程序中处理2个关闭事件的代码实例
2021-04-25 14:21
标签:小程序 enter 程序 alt parent ati 系统 ctrl 变量 我们开发的控制台应用,在运行阶段很有可能被用户Ctrl+C终止或是被用户直接关闭。如果我们不希望用户通过Ctrl+C终止我们的程序,就需要对Ctrl+C或关闭事件作处理。 在.net平台下Console类有个CancelKeyPress事件可以处理Ctrl+C,不过对于直接关闭控制台应用,这种处理就无能为力了。 不过Windows API中有个SetConsoleCtrlHandler函数可以处理这两种关闭事件。 C#处理代码如下: { public delegate bool ControlCtrlDelegate(int CtrlType); [DllImport(“kernel32.dll”)] private static extern bool SetConsoleCtrlHandler(ControlCtrlDelegate HandlerRoutine, bool Add); private static ControlCtrlDelegate cancelHandler = 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; } Console.ReadLine(); return false; } /// /// 应用程序的主入口点。 /// [STAThread] static void Main(string[] args) { SetConsoleCtrlHandler(cancelHandler, true); Console.ReadLine(); } } 本文地址: http://www.paobuke.com/develop/c-develop/pbk23468.html C#控制台程序中处理2个关闭事件的代码实例 标签:小程序 enter 程序 alt parent ati 系统 ctrl 变量 原文地址:http://www.cnblogs.com/paobuke/p/7920019.html
应用场景
处理方法
代码如下:
static class Program
C#控制台程序中处理2个关闭事件的代码实例相关内容
上一篇:C#中多态、重载、重写区别分析