从与用户桌面交互的Windows服务运行exe

时间:2008-10-07 08:25:36

标签: windows-services

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

1 个答案:

答案 0 :(得分:5)

从Windows服务显示UI非常有问题,因为该服务可能在与用户不同的桌面上运行(而在Vista / Server 2008上实际上总是在不同的桌面上运行)。

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

请记住:

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