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コンソールアプリは廃止されました。ウィンドウを閉じるとコンソールアプリが強制的に終了するため、アプリに信号が送信されることはありません。Thx MS!

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 に答える