【问题标题】:User Interactive Service in Windows 7Windows 7 中的用户交互服务
【发布时间】:2013-07-08 13:57:58
【问题描述】:

我们开发了一个基于网络的 C++ 应用程序,它应该作为 Windows XP 7 32 位系统的服务运行。

  • 该应用程序基于控制台。
  • 应用启动并运行后,用户应该能够在控制台中看到日志。

为了让应用程序作为服务运行,我们使用了XYNTService

应用程序作为服务运行,在 XP 下运行良好。

但是我在 Windows 7 下看不到控制台,由于该服务在本地 SERVICE 帐户下运行,可能我们看不到 GUI 或以任何方式访问它,因为它正在另一个 winlogon 会话中运行。

那么有人可以建议我们如何使服务交互,以便用户可以在应用程序作为服务运行时在控制台上看到日志?

其他 如果我把它做成一个基于托盘的应用程序,有没有办法将日志重定向到一个窗口?

【问题讨论】:

  • 我不会走这条路,因为在 Vista 及更高版本上,交互式服务很丑陋。他们的 UI 显示在一个完全独立的桌面(或 Window Station?我忘了)上,来回切换很麻烦。对应用程序进行适当的修改会更可取。

标签: c++ windows service console winlogon


【解决方案1】:

实际上,您可以订阅登录/注销事件,然后在每次用户登录系统时使用WTSEnumerateSessionsCreateProcessAsUser 来创建GUI,但这不是一个好的选择。

制作一个在用户登录系统时自动运行的托盘应用程序是更好的主意,您可以使用任何 IPC 机制(命名管道、共享内存、套接字)将日志从服务发送到托盘应用程序。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-26
    • 1970-01-01
    • 1970-01-01
    • 2014-01-01
    相关资源
    最近更新 更多