问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

C#控制台应用程序也能添加窗口关闭事件?

发布网友 发布时间:2024-10-04 15:09

我来回答

1个回答

热心网友 时间:2024-10-17 21:54

在控制台应用程序中,当需要在窗口关闭前执行特定业务逻辑,或者在意外关闭或程序结束时发送通知时,通常情况下控制台应用并不直接提供关闭事件。然而,这并不意味着我们不能实现类似的功能。实际上,我们可以通过自定义代码来模拟窗体应用程序的关闭事件处理。

首先,要在`Program.cs`的`Program`类中创建一个委托`HandlerAppClose`,这个委托用于存储函数指针,然后调用系统API函数`SetConsoleCtrlHandler`来注册这个委托。

在`Main`方法中,你需要添加如下代码,以注册窗口关闭事件:

csharp
public static void Main(string[] args)
{
// ...其他程序初始化代码...
SetConsoleCtrlHandler(CallbackHandler, true); // 注册关闭事件处理函数
// ...程序运行代码...
}

private static bool CallbackHandler(int controlType)
{
// 在这里处理关闭事件的逻辑,比如业务处理或发送通知
// ...
return true; // 返回true表示处理了事件,否则程序会结束
}

当用户点击窗口的关闭按钮(通常表现为"x")时,程序将执行`CallbackHandler`方法,实现了控制台应用程序的窗口关闭事件处理。这使得在控制台应用程序中也能实现类似窗体应用的关闭事件管理。

对于更详细的实现步骤和代码示例,你可以参考原文链接:[原文链接](cnblogs.com/kimiliucn/p...)
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
250电脑摇头灯不用512控制台如何自走? 我怎么总这样想啊?? 那曲冬虫夏草那曲冬虫夏草生长环境 哪里的虫草最好 颈3以上椎体刺痛向前移位怎么办 cad2012 64位注册码 09VR 62JX YSHG X1F6 NXU9 UCNY 24CG QXPZ_百度知... 腰4椎体向前移位,与摔伤有关系吗 求高手指点2012cad是怎么了 是64位 官网下载 注册机破解 尾三椎体骨质欠连续远端稍向前移位 ...腰五椎移位,报告说腰五椎弓峡部不连续发椎体向前滑移。腰椎退行性改... 从纪家庙(丰台东路)到北太平桥西怎么坐公交车,最快 到丰台区纪家庙63号怎么坐公交 压力大的孩子不会说话怎么教育 孩子不爱说话如何正确教育? 社保滞纳金能否在2022年所得税前扣除? 社保滞纳金可在企业所得税前扣除 古巴林蚺的备注 美洲闪鳞蛇备注 华科的附属医院有哪些 医学考研院校分析:华中科技大学! 一个C#的简单 windows 程序中,Console.WriteLine("Some words"); 一... 用的connectify,显示有网,可是本地连接无网,网页打不开,qq却能上,酷狗... ...酷狗可以打开正常搜索放歌。请问这是什么情况呢? 睡前喝点白酒安眠吗,对人身体有好处吗? 搜狗浏览器有没有自带的屏幕视频录制? 喝点白酒是不是能治失眠,能睡的香 香溪河自然风光 昭君村的拼音狐昭君村的拼音是什么 香溪源的传说 桡神经损伤有什么注意事项 从北京丰台区的夏家胡同凌晨4点怎么能到北京站(不打车) 咨询一下 武汉同济医院神经外科.舒凯教授星期几上班的 我电脑上面的酷狗没有网络,就是搜索音乐跟登录账号没有网络,其他的乐库... C ,ManagementClass 这个类的使用 电脑无论是听歌还是在酷狗看MV,网速都很好,可是打开网页以及下载东西的... 求助!!我的本本装了win8 64位以后用酷狗看mv就未响应 我酷狗里面的歌mv怎么过一段时间就没了,不不联网状态下,缓存文件怎么保 ... microsoft net franework是什么,可以删吗? 这就是生活第三集在哪里拍摄 c照升级b需要考试吗 c照增驾b照要考试啥吗 东陵满族乡区划沿革 c证增驾b2证要考什么科目 遵化人口区划 c照增驾b2要考试吗,c照可以开摩托车吗 c照增驾b2要考什么? C#怎么写控制台程序 C#窗体如何调用控制台程序 C# 中的Form程序,调用控制台程序,如何获取控制台man函数返回的参数_百 ... 对于娃转奶,请问谱恩羊奶粉怎样呀? 谱恩羊奶粉的价格比一般的奶粉贵,为什么呢?