如何在当前用户的会话下运行服务?

时间:2011-04-11 20:49:41

标签: c# service interop growl

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

3 个答案:

答案 0 :(得分:1)

如果服务需要以当前用户身份运行,那么为什么要将其作为服务呢?服务的目的是始终运行,即使用户没有登录。因此,它被设计为始终作为特定用户运行。

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

答案 1 :(得分:0)

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

Service Dialog

答案 2 :(得分:0)

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

干杯,

CEC

相关问题