我有一个应用程序,当某个事件发生时会自动关闭。 当应用程序以这种方式关闭时,我的应用程序所做的最后一件事就是告诉Windows关闭。 通过调用以下命令来关闭Windows:
private void OnProcessExit(object sender, EventArgs e)
{
//If class level flag set shut down Windows with a delay of xx seconds
if (shutdownWindowsOnExit)
System.Diagnostics.Process.Start("shutdown", "/s /t 30");
}
用户必须能够在应用程序关闭后取消关闭Windows,这就是定义30秒延迟的原因。 为了做到这一点,我只是在桌面上放置了一个常规快捷方式,然后在按下时调用以下内容(取消Windows关闭):
C:\Windows\System32\shutdown.exe /a
我想要的是摆脱快捷方式并在出现(对于用户来说)属于我的应用程序(刚刚关闭)的内容中实现取消代码。
我考虑过简单地创建一个小的独立应用程序,它包含一个带有按钮的表单,表示“按此处取消Windows关闭”。 然后,我可以在调用
后立即从我的主应用程序启动这个小应用程序System.Diagnostics.Process.Start("shutdown", "/s /t 30");
这样我就可以确定我的主应用程序是安全关闭的,并且在Windows关闭时Windows只会终止小型辅助应用程序。
我知道可以在Visual Studio中的一个解决方案中包含两个项目,但是创建一个单独的项目(使用settings.settings文件,app.config文件,版本控制等)来创建这个小小的感觉有点过头了。辅助计划。
我现在的问题是: 我是否可以通过某种方式将此单独的表单编译并编译为Visual Studio中现有项目中的单独.exe文件,而无需在一个解决方案中使用两个完整的单独项目。
提前感谢您的帮助!
答案 0 :(得分:0)
为什么不执行以下操作:
终止应用程序时,确保没有后台线程仍在运行以避免
"应用程序没有正常关闭"