最后一个退出点

时间:2014-03-14 06:50:06

标签: c# visual-studio-2012

我需要编写一个退出应用程序的函数,然后关闭Windows 7。

我已经获得退出应用程序的代码(主窗体中的this.Close())以及关闭Windows(带有各种参数的shutdown.exe)。

这个问题与上述退出和退出方式的正确性无关。

我的问题是: 显然我需要在关闭我的应用程序后调用shutdown.exe,那么最后一个被调用的事件是什么,我应该把我的Windows关闭代码放在哪里? 我的猜测是在FormClosing事件结束时,但这是正确的吗?

我正在使用.net framework 4.5。

欢迎其他建议来实现上述目标。

非常感谢提前!

4 个答案:

答案 0 :(得分:1)

尝试AppDomain的ProcessExit事件:

static void OnProcessExit (object sender, EventArgs e)
{
    Process.Start("shutdown", "/s /t 00");
}

答案 1 :(得分:1)

啊,不,完全错了。

请参阅......

您的应用程序以Application.Run(someform)开头。这使得当前的线程(启动应用程序的线程)注册为表单的消息循环并处理它的事件。

当这结束时(表格全部关闭),此语句将继续下一行。

所以你可以在主要方法结束时,在Application.Run()之后立即完成你的工作。不需要举办活动。

您的应用程序有一个核心输入方法,如下所示:

public static void Main(string[] args) {
    // Starts the application.
    Application.Run(new Form1());
 }

在Application.Run调用之后,你可以在之前和 - 在你的情况下 - 添加逻辑。

答案 2 :(得分:0)

另一种方法是启动关机 - Windows将向您的程序发送一个关机通知,默认情况下会导致您的程序退出。

答案 3 :(得分:0)

看这里 使用Process.Start(" shutdown",/ t / s / 0");

http://www.codeproject.com/Tips/480049/Shut-Down-Restart-Log-off-or-Lock-your-computer-in