繁体   English   中英

在一种解决方案中为我的主程序创建辅助程序(.exe文件)?

[英]Create an auxilary program (.exe file) to my main program in one solution?

我有一个在发生特定事件时会自动关闭的应用程序。 当应用程序以这种方式关闭时,我的应用程序要做的最后一件事就是告诉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文件中,而无需在一个解决方案中包含两个完整的单独项目。

感谢您的任何帮助!

为什么不执行以下流程:

  1. 执行所有必需的关闭过程(减去终止应用程序),
  2. 关闭主窗体并使用计时器和取消按钮打开新窗体
  3. 当计时器启动时,终止应用程序并关闭窗口
  4. 如果用户取消杀死应用程序但不关闭Windows

终止应用程序时,请确保没有后台线程仍在运行,以避免

“应用程序未正确关闭”

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM