【发布时间】:2009-11-13 16:08:58
【问题描述】:
如何从正在运行的 .NET 后台进程在活动用户会话中启动程序。基本上我有一个作为服务运行的 .NET 应用程序,我希望该应用程序在某些事件发生时在用户桌面上启动一个特定的窗口应用程序。
我该怎么做?
这个问题和这个有关:Start a program in active user session with PowerShell remoting
更新
单独使用Process.Start 在这里不起作用,因为它会在当前应用程序会话中启动应用程序。它不会在特定用户的活动桌面会话中启动应用程序。
【问题讨论】:
-
我不是 100% 确定它会起作用,而且几乎没有发布答案。
-
别担心,克里斯,感谢您的宝贵时间。
-
1) 如果有多人登录系统会发生什么?终端服务或快速用户切换可能会发生这种情况。 2) 您希望窗口应用程序在用户的安全上下文中启动还是在服务的安全上下文中启动?
-
我希望能够将它定位到特定机器上的特定用户,并且我希望能够检测会话的状态。如果用户不活跃或没有立即看到它,只要他们下次连接到服务器时对话框已经启动,这并不是什么大不了的事。如果他们被注销或他们的会话被终止,那么如果他们下次登录时没有出现该消息,那也没关系。
-
我猜你现在已经找到了解决方案(因为问题已经超过 2 年了),如果你还没有,那么我有一个我可以发布的解决方案作为答案...