Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 监视自定义服务_Vb.net - Fatal编程技术网

Vb.net 监视自定义服务

Vb.net 监视自定义服务,vb.net,Vb.net,我已经为我的一个应用程序创建了一个服务。如何在VB.net中创建可用于监视服务进度的系统托盘组件?有没有办法通过tcpip将其安装在多台客户机上,比如我们员工的客户机上?我想你的问题不是如何实际执行“traybar”操作,而是如何与服务进行通信,以获取希望在monitor/traybar程序中显示的信息 它可以通过多种方式完成,API是一种方式,使用sendmessage/postmessage/getmessage是使两个正在运行的程序相互通信的一种方式,而无需先在文件或数据库中存储任何内容

我已经为我的一个应用程序创建了一个服务。如何在VB.net中创建可用于监视服务进度的系统托盘组件?有没有办法通过tcpip将其安装在多台客户机上,比如我们员工的客户机上?

我想你的问题不是如何实际执行“traybar”操作,而是如何与服务进行通信,以获取希望在monitor/traybar程序中显示的信息

它可以通过多种方式完成,API是一种方式,使用sendmessage/postmessage/getmessage是使两个正在运行的程序相互通信的一种方式,而无需先在文件或数据库中存储任何内容

DDE是另一种方式。如果它需要通过网络做这些事情,那么有一种叫做NetDDE的东西,但是我没有用NetDDE做任何事情,我在那里无能为力


但是关于API和DDE,如果您想要澄清,请随时询问更多问题。

我将回答第二个问题:有没有办法在客户端机器上远程安装软件

对。但是,它非常依赖于您的环境。例如,如果您有Active Directory域,则可以使用组策略强制在客户端盒上安装软件

如果您不喜欢,或者您不在active directory上,您可以购买类似Altiris的产品来推动安装


另一种选择是使用登录脚本,该脚本将运行一个自定义程序来检测您的程序是否已安装并采取适当的操作。但是你最好还是买Altiris。

我们在这里就是这么做的,服务器在一个单独线程上的一个可配置端口上运行一个非常基本的HTTP服务器,该线程以XML格式返回状态(没有其他内容,仅此而已)——客户端只使用一个web请求来获取XML,然后对其进行解析并适当地显示


这种方法还允许将来进行扩展(详细状态、发送服务控制命令、将关联添加到其他地方的XSLT文件以便与普通web浏览器一起使用,等等)。

对于通信部分,我以前使用过远程处理,这非常有效。只需一点配置,您甚至可以让它在另一台机器上工作。

您可以使用WCF来实现这一点。使用WCF,您的服务将打开一个端点,该端点将向呼叫者公开状态信息。然后,您可以构建一个托盘图标应用程序,该应用程序可以部署到员工工作站。托盘图标应用程序可以定期轮询Windows服务所在的WCF服务,并获取状态信息。我知道@Johan已经提到了远程处理,这是一种类似的方法。不过我还是推荐WCF,因为编程API更简单,IMHO和WCF将在网络传输等方面为您提供更大的灵活性