0

我有一个用 C# 编写的服务,它监视一组文件。如果其中一个文件的修改时间超过 4 小时,它使用 Growl 通知最终用户。我见过 Growl.exe 没有在当前用户的会话下运行的情况,因此他们没有收到更新。我希望我的服务检查以确保 Growl 正在运行(Growl.exe 或者我可以在某处查找应用程序 ID?),如果没有,则启动它。如何确保 Growl 始终在运行此服务的任何机器上的当前用户会话中运行?

4

3 回答 3

1

如果服务需要以当前用户身份运行,那为什么要让它成为服务呢?服务的目的是始终运行,即使用户未登录。因此,它旨在始终作为特定用户运行。

为什么不将其转换为用户登录时运行的程序?

于 2011-04-11T21:11:30.327 回答
0

这是一个有趣的问题,但看起来你不能像这篇文章所建议的那样做到这一点。似乎您可以指定该服务作为本地系统服务运行,或者作为特定用户运行:

服务对话框

于 2011-04-11T21:09:08.360 回答
0

如果您的服务以“自动”方式启动,那么您只能为该服务预先配置一组凭据。但是,如果您可以识别服务在启动时调用的 .exe 文件,那么您可以创建一个批处理文件,该文件将在登录时启动该服务,此时将默认使用活动用户凭据。

干杯,

中电联

于 2011-04-11T21:10:56.830 回答