【发布时间】:2012-08-20 12:28:48
【问题描述】:
我在 Google 上搜索并发现 Console.CancelKeyPress 这很有用,但我经常通过关闭窗口来关闭控制台。使用右上角的 X。 Console.CancelKeyPress检测到ctrl+c,如何检测到点击X关闭?
【问题讨论】:
-
at this link 有很多帮助。
我在 Google 上搜索并发现 Console.CancelKeyPress 这很有用,但我经常通过关闭窗口来关闭控制台。使用右上角的 X。 Console.CancelKeyPress检测到ctrl+c,如何检测到点击X关闭?
【问题讨论】:
试试这个:
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 控制台应用程序已经消失了该技术和大多数其他技术。当窗口关闭时,控制台应用程序被强制终止,因此该应用程序永远不会收到信号。谢谢女士!
解决方案似乎是(请参阅上面的 URL)使您的控制台应用程序成为具有不可见窗口的 Windows 应用程序,该窗口处理消息 WM_ENDSESSION,该处理程序将在关闭前有 5 秒的时间终止。
【讨论】: