我为我的某个应用创建了一项服务。如何在VB.net中创建可用于监控服务进度的系统托盘组件?有没有办法通过tcpip在多台客户机上安装这些机器,例如那些适用于我们员工的机器?
答案 0 :(得分:1)
我们在这里做到了这一点,服务器在一个可配置的端口上运行一个非常基本的HTTP服务器,该端口在一个单独的线程上以XML格式返回状态(没有别的,只是那个) - 客户端只使用Web请求在解析并正确显示之前获取XML。
此方法还允许将来的可扩展性(详细状态,发送服务控制命令,在其他地方添加与XSLT文件的关联以与普通Web浏览器一起使用等)。
答案 1 :(得分:1)
你可以使用WCF。使用WCF,您的服务将打开一个EndPoint,它会向调用者公开状态信息。然后,您可以构建可以部署到员工工作站的托盘图标应用程序。托盘图标应用程序可以定期轮询您的Windows服务托管的WCF服务并获取状态信息。我知道@Johan已经提到了Remoting,这是一种类似的方法。我建议使用WCF,因为编程API更简单,恕我直言,WCF将为您提供更多的网络传输灵活性。
答案 2 :(得分:0)
我想您的问题不是关于如何实际执行“托盘栏”,而是如何与服务进行通信以获取您想要在监视器/托盘栏程序中显示的信息?
它可以通过多种方式完成,API是一种方式,使用sendmessage / postmessage / getmessage是让两个正在运行的程序相互通信而不必先在文件或数据库中存储任何内容的一种方法。
DDE是另一种方式。如果它需要通过网络做这些东西然后有一些叫做NetDDE的东西,但是我没有用NetDDE做任何事情我不能帮助那里。
但是关于API和DDE,如果您想要澄清,请随时提出更多问题。
答案 3 :(得分:0)
我将提出第二个问题:有没有办法在客户端计算机上远程安装软件?
是。但是它非常依赖于您的环境。例如,如果您有Active Directory域,则可以使用组策略强制在客户端框上安装软件。
如果你不喜欢它或者你不在活动目录中,你可以购买像Altiris这样的东西来推动安装。
另一种选择是使用登录脚本运行自定义程序来检测您的程序是否已安装并采取适当的措施。但是你最好还是买Altiris。
答案 4 :(得分:0)
对于通信部分,我之前使用过远程处理,这非常有效。通过一些配置,您甚至可以将其用于另一台机器。