.NET Console 控制台关闭消息捕获拦截问题

大家好!我现在做一个.NET Console控制台程序,想拦截控制台窗体关闭消息,

我试过ControlCtrlDelegate Win32 API,只有5秒钟的时间
我试过钩子程序,同样的钩子程序在WinForm里能拦截消息,但是在Console里不能被拦截
我也试过Windows消息循环处理,如果有Timer的话,Timer的消息是能被GetMessage的,这个没用,要的是Console窗口的消息,Console的消息不能被GetMessage

我也试过AppDomain.CurrentDomain.ProcessExit事件,还是不行

现在搞的头都大了,不知道各位有没有好的解决方案

如果不想被意外关闭,就不要做成Console程序,应该选择做成服务(windows service)。

Windows的健壮性之一,体现在它能强制关闭(比如停止响应的)程序。我们没有必要同它的设计对着干。