Windows services 从与用户交互的windows服务运行exe';s桌面

Windows services 从与用户交互的windows服务运行exe';s桌面,windows-services,Windows Services,我在C#和WindowsServer2003中创建了一个windows服务。我希望我的服务能够运行一个exe文件,该文件是Windows窗体应用程序。当我启动服务时,它运行另一个应用程序,但我看不到它。当我打开任务管理器时,我可以看到应用程序正在运行,但我就是看不到。我选中了“允许服务与桌面交互”,但什么也没发生。请帮忙。 是否可以在windows服务中运行和exe,并查看在widnows server 2003中运行的exe?显示windows服务的UI是非常有问题的,因为该服务可能运行在与用

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

显示windows服务的UI是非常有问题的,因为该服务可能运行在与用户不同的桌面上(而在Vista/server 2008上,实际上将始终运行在不同的桌面上)

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

记住:

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

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

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

    记住:

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

  • 回答得好。也许可以添加一个关于如何在服务和桌面应用程序之间进行通信的建议。@Ken:命名管道、DCOM、RPC,甚至TCP/IP-选择:)回答得好。也许可以添加一个关于如何在服务和桌面应用程序之间进行通信的建议。@肯:命名管道、DCOM、RPC,甚至TCP/IP-选择:)