在开发 WPF 应用程序时,我试图以非交互方式停止应用程序的执行。此应用程序用于用户向 Windows 集群提交作业的环境,有时他们会意外提交 UI 代码。这些实例最终会在服务器上运行,直到有人识别出它们的存在并终止该进程。
根据多个问题( #1、#2、#3 )中答案的建议,我实现了以下代码,Environment.UserInteractive
用于停止非交互式使用:
private void Application_Startup (object sender, StartupEventArgs e)
{
if (Environment.UserInteractive)
{
var window = new MainWindow();
window.Show();
}
}
使用 Windows 7 任务计划程序进行的快速测试显示该进程仍然处于活动状态!因为无论用户是否登录,任务都设置为运行,所以我在任何地方都看不到 Window 并且不确定是否Environment.UserInteractive
返回true
.
那么如何检测 WPF 应用程序是否以非交互方式运行呢?