【问题标题】:Detect when console is being closed?检测控制台何时关闭?
【发布时间】:2012-08-20 12:28:48
【问题描述】:

我在 Google 上搜索并发现 Console.CancelKeyPress 这很有用,但我经常通过关闭窗口来关闭控制台。使用右上角的 X。 Console.CancelKeyPress检测到ctrl+c,如何检测到点击X关闭?

【问题讨论】:

标签: c# .net console


【解决方案1】:

试试这个:

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 秒的时间终止。

【讨论】:

  • @acidzombie24:显然,Windows 7 和 Vista 坏了……呃……改进了一些东西。有关详细信息,请参阅我编辑的答案。
猜你喜欢
  • 2011-09-26
  • 2017-11-10
  • 2015-11-29
  • 2017-02-06
  • 1970-01-01
  • 1970-01-01
  • 2010-09-08
  • 1970-01-01
相关资源
最近更新 更多