手机
当前位置:查字典教程网 >编程开发 >C#教程 >C#控制台程序中处理2个关闭事件的代码实例
C#控制台程序中处理2个关闭事件的代码实例
摘要:应用场景我们开发的控制台应用,在运行阶段很有可能被用户Ctrl+C终止或是被用户直接关闭。如果我们不希望用户通过Ctrl+C终止我们的程序,...

应用场景

我们开发的控制台应用,在运行阶段很有可能被用户Ctrl+C终止或是被用户直接关闭。如果我们不希望用户通过Ctrl+C终止我们的程序,就需要对Ctrl+C或关闭事件作处理。

处理方法

在.net平台下Console类有个CancelKeyPress事件可以处理Ctrl+C,不过对于直接关闭控制台应用,这种处理就无能为力了。

不过Windows API中有个SetConsoleCtrlHandler函数可以处理这两种关闭事件。

C#处理代码如下:

复制代码 代码如下:

static class Program

{

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;

}

/// <summary>

/// 应用程序的主入口点。

/// </summary>

[STAThread]

static void Main(string[] args)

{

SetConsoleCtrlHandler(cancelHandler, true);

Console.ReadLine();

}

}

【C#控制台程序中处理2个关闭事件的代码实例】相关文章:

C#获取全部目录和文件的简单实例

C#小程序15位转18位身份证号代码

用C#写的ADSL拨号程序的代码示例

C#反射在实际应用中的实例代码

C#控制台带参数程序源码编写实例讲解

C#控制台输出进度和百分比的实例代码

C# 禁止应用程序多次启动的实例

C# 获取程序集版本、文件版本

用C#实现启动另一程序的方法实例

解读在C#中winform程序响应键盘事件的详解

精品推荐
分类导航