0

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

4

1 回答 1

5

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

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

只要记住:

  1. 可能没有登录用户
  2. 可能有多个登录用户使用快速用户切换或远程桌面
  3. 用户桌面上的应用程序在用户的安全上下文中运行,而不是在服务的
于 2008-10-07T09:14:06.337 回答