C#注册控件处理程序(SetConsoleCtrlHandler)函数示例 控制台关闭事件改写

本文介绍了如何使用C#结合Win32 API的SetConsoleCtrlHandler函数来添加或删除控制台应用程序的处理函数,用于监听并处理控制台关闭事件。示例代码展示了如何拦截和响应手动关闭控制台的事件。

添加或删除应用程序定义的HandlerRoutine从调用进程的处理函数列表功能。

Win32 API
功能:
添加或删除应用程序定义的HandlerRoutine从调用进程的处理函数列表功能。
函数原型:
BOOL SetConsoleCtrlHandler(
PHANDLER_ROUTINE HandlerRoutine, // 回调函数
BOOL Add // 表示添加还是删除
);
返回值:BOOL类型
参数
参数HandlerRoutine:一个应用程序定义的指针HandlerRoutine 功能要添加或删除。 这个参数可以是NULL。
参数Add:如果此参数为TRUE,处理程序添加,如果是假的,该处理程序将被删除。
返回值:
如果函数失败,返回值为0.否则,返回一个非0值。 若想获得更多错误信息,调用GetLastError函数 。
说白了,就是一个系统调用。
第一个参数是函数指针,就是上面的那个函数。第二个参数是标志,如果为TRUE那么就安装钩子,如果为FALSE那么删除钩子。

利用Windows API 拦截Console的手动关闭事件的消息,来实现,下面我给出的是一个完整的事例:

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值