2011-09-29 188 views
3

我正在构建一个Windows服务,该服务将监视事件和磁盘活动的特定事件。发生此类事件时,我的计划是通过客户端应用程序向用户发出事件警报,并在必要时提供补救措施。我(主要)完成了客户端和服务组件,这很好用,除非客户端应用程序没有运行。从Windows服务启动应用程序

总之,我正在寻找一种方法来通过CreateProcess从Windows服务启动客户端应用程序,以向用户提供信息。但是,它似乎甚至无法看到客户端应用程序的文件/文件夹执行它。我怀疑这是由于服务正在运行的凭据,或者可能是由于服务级别的限制,但我想深入了解一些建议之前,我深入了解了这一点。

所以,首先明显的问题......我是否清楚地思考这个问题?体系结构计划是否听起来,还是应该看另一种方法?我宁愿不重做我已经完成的任何工作,但显然要确保计划和过程稳固。

问题2,我面对这个模型有什么限制?是否有服务帐户可以允许此级别的访问?

我显然正在努力与此权利,所以任何想法或援助将不胜感激!

感谢, 克里斯

+0

配置为运行的服务的安全上下文是什么? –

回答

4

正如其他人已经提到的,你不能(容易)直接从服务启动一个应用程序,所以我认为解决问题最简单的方法是创建一个登录时启动一个进程并使用登录用户的凭据运行,例如位于系统托盘中的应用程序,并打开命名管道或服务的网络端口。如果服务需要提醒用户,它会向该通道发送消息,然后客户端进程可以显示其自己的UI或启动应用程序。使用管道或端口进行的进程间通信是处理会话0进程限制的最简单方法。

相关问题