0

我用谷歌搜索并发现Console.CancelKeyPress它很有用,但很多次我都是通过关闭窗口来关闭我的控制台。使用右上角的 X。Console.CancelKeyPress检测到 ctrl+c,如何通过单击 X 来检测关闭?

4

1 回答 1

6

试试这个:

class Program
{
    static void Main( string[] args )
    {
        AppDomain.CurrentDomain.ProcessExit += ProcessExitHandler ;
    }

    static void ProcessExitHandler( object sender , EventArgs e )
    {
        throw new NotImplementedException("You can't shut me down. I quit!" ) ;
    }
}

编辑注意:显然,Windows 7 中的 WRT 控制台应用程序已经消失了该技术和大多数其他技术。当窗口关闭时,控制台应用程序被强制终止,因此该应用程序永远不会收到信号。谢谢女士!

http://social.msdn.microsoft.com/Forums/en/windowscompatibility/thread/abf09824-4e4c-4f2c-ae1e-5981f06c9c6e

解决方案似乎是(请参见上面的 URL)使您的控制台应用程序成为具有处理消息的不可见窗口的 Windows 应用程序WM_ENDSESSION,该处理程序将在关闭之前有 5 秒的时间终止。

于 2012-08-24T23:46:22.643 回答