当前位置:  开发笔记 > 开发工具 > 正文

如何让我的Windows服务显示在系统托盘中?

如何解决《如何让我的Windows服务显示在系统托盘中?》经验,为你挑选了2个好方法。

我的Windows服务在PC启动时在后台运行.我想在系统托盘上显示一个图标,以便在用户登录后进行配置,但无法找到如何执行此操作.

是否有我应该寻找的事件告诉我用户已登录?

据我所知,Windows Services不能拥有UI,所以我需要启动一个应用程序来显示sys托盘图标吗?如何将配置更新传递给我的服务.



1> David..:

你需要一个单独的"代理"应用程序.Windows服务是全局的,在系统级别运行.系统上可以同时运行多个桌面,因此虽然有多种方法允许服务与桌面层交互,但与"用户桌面"交互的方式与使用应用程序的方式相同并非易事.已经绑定到特定的登录/桌面环境.

将服务隧道引入桌面环境也存在安全风险(它打开了通向系统帐户的路径,除非服务在更受限制的情况下运行),这就是默认情况下禁用与桌面交互的原因.


这是正确的答案.命名管道为服务与系统托盘代理进行通信提供了一种好方法.但是:请考虑您的服务是否真的非常超级[http://blogs.msdn.com/b/oldnewthing/archive/2010/12/15/10105142.aspx]在系统托盘中值得拥有自己的图标.

2> Jakob Christ..:

您将需要一个单独的应用程序来显示托盘图标.您可以通过WCF让服务托管WCF服务或通过ServiceController与您的服务进行通信.

推荐阅读
牛尾巴2010
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有