2008-10-07 100 views
0

我在C#和Windows Server 2003中创建了一个windows服务。我希望我的服务能够运行Windows窗体应用程序的exe文件。当我启动服务时 - 它运行另一个应用程序,但我看不到它。当我打开任务管理器时 - 我可以看到应用程序正在运行,但我看不到它。我选中了“允许服务与桌面交互”,但没有任何反应。请帮忙。 是否有可能在windows服务中运行和执行,并看到在widnows server 2003中运行的exe文件?从windows服务运行exe,与用户桌面交互

回答

5

显示来自Windows服务的用户界面非常成问题,因为该服务可能在与用户不同的桌面上运行(并且在Vista/Server 2008上实际上始终运行在不同的桌面上)。

最简单的解决方案不是直接从服务运行UI,而是从运行在用户桌面上的应用程序(可能设置为在登录时运行)以某种方式与服务通信。

只需记住:

  1. 有可能是在用户没有登录
  2. 可能有多个登录使用快速用户切换或远程桌面
  3. 在用户桌面上的应用程序的用户在运行用户的安全上下文,而不是服务的
+0

好的答案。也许增加关于如何在服务和桌面应用程序之间进行通信的建议。 – Ken 2008-10-07 12:21:32

相关问题