正确处理Windows Service Tray App / NotifyIcon启动的方法

时间:2014-11-27 00:49:24

标签: c# .net windows-services system-tray trayicon

为了记录,我想指出两件事:

  1. 我知道如何创建Windows服务,我知道如何创建托盘应用程序以及如何与Windows服务进行通信

  2. 我已经阅读了无数关于这个主题的文章,几乎所有文章都提出了黑客攻击,将应用程序放在启动菜单中,(旧的)交互式桌面服务,启动脚本等。我还发现了以下主题的资源。 2010年(又名技术世界光年)

  3. 我正在寻找的是确保在安装我的服务时,每当用户登录到他/她的计算机时,每个用户都会在托盘中获得一个漂亮的图标的正确方法。这比看起来稍微复杂一点,并且大多数的hackish解决方案无论如何都不会起作用(不管我还是想要使用它们)。

    我想要达到的目标是双重的。我想知道如何:

    1. 启动托盘应用程序,不修改任何用户设置。这意味着不向用户启动添加任何内容,不修改注册表,不修改启动脚本等。我的公司在几乎所有部门都没有固定座位。任何用户都可以每次登录几乎所有工作站。理想情况下,托盘应用程序将从检测用户登录或正在启动的shell的服务启动,然后为该用户生成托盘应用程序的实例。

    2. 我也在寻找一种方法来处理服务的启动。例如,当我启动服务并且多个用户登录到单个计算机(完全可能)时,服务应该为每个用户生成一个托盘应用程序实例并进行交互式登录。如果服务需要恢复,这一点尤为重要。服务停止或重新启动时也是如此。

    3. 为了给你一个想法,我写的应用程序包含一个Windows服务,一个托盘应用程序,通过通知向用户提供反馈,并允许他们启动一个配置程序,该程序还包含其他信息。他们,最后说通过命名管道与服务通信的配置程序。这一切都非常简单。

0 个答案:

没有答案