出于很多原因,您可能要监视某个应用程序是否在某些远程计算机上运行。这听起来像是一个复杂的高级需求,您需要一位IT专家来帮助您,但是我在这里告诉您,这是您可以自己完成的任务。
您我们已经信任我们向您展示了如何使用VBA来完成其他看似复杂的任务,例如将电子邮件从Excel数据发送到Word文档。
现在,所有这些事情都是相对被动的。从计算机上的一个应用程序发送电子邮件或将数据传递到另一应用程序是一回事,但是在这种情况下,我们将监视一个计算机上运行的一个应用程序,以及远程计算机上运行的另一个应用程序。可能-相信我。
远程应用程序监视系统
从根本上讲,这是一个系统,只需两端简单的几行代码,您就可以将您变成英雄设置。
设置会是什么样?基本上,此设置可以与可能在大型电视显示器上显示某些内容,运行Excel数据输入屏幕或其他任何具有VBA的Office应用程序的远程计算机系统配合使用。
以此处的示例为例,我将创建一台计算机,其中VBA应用程序每5秒将文件写入c:\ temp \ handshaking \目录中的本地计算机硬盘驱动器中。然后,远程监视计算机将每隔一段时间就远程检查该目录中的文件。如果该文件存在,它将删除它(因为如果远程程序正在运行,则应再次重新创建该文件)。如果该文件不存在,它将发出警报,表明该计算机上的应用程序不再运行。
这就是它的样子。
首先,我将向您展示如何在本地Office应用程序上添加VBA脚本,该脚本将每5秒写入一次握手文件(如果该文件尚不存在)。
在我的示例中,我创建了两个按钮来显示脚本的工作方式,但是在您的应用程序中,您将在应用程序启动时启动“开始握手"脚本。在Excel中,这是工作表->激活功能。
在开始编写将要握手文件的脚本之前,您需要激活Microsoft脚本运行时参考-这允许您的VBA应用访问Windows的文件操作工具。您可以在VBA编辑器中访问它,单击“工具"->“引用"菜单。
只需向下滚动,选择Microsoft Scripting Runtime,就可以了。
如果不计算变量定义,此脚本只有16行,这是一个简单的脚本!它所做的只是建立一个每5秒运行一次的计时器循环。它检查握手文件是否存在。如果没有,它将重新创建文件。
如果您考虑它,这是一种简单,富创意的方式,可以向全世界表明该应用程序正在运行并且正在运行。让我告诉你我的意思。当我单击“开始握手"按钮,然后转到c:\ temp \ handshaking \目录时,可以看到我的VBA脚本已创建新文件。它是一个空文件,但是没关系–重要的是该文件存在。
要测试我的脚本,我从目录中手动删除了文本文件。
A几秒钟后,该文件再次出现。
这意味着此时,您的应用程序外部的任何人或任何事物都可以通过删除该文件然后检查以查看是否打开了程序。如果文件再次出现。简单-高效!
现在,您的VBA握手脚本已在所有远程应用程序上运行,您将需要创建在某个服务器或您自己的工作PC上运行的中央程序,熄灭并监视那些远程应用程序是否正在运行。
最好的方法是使用在后台运行且没有GUI前端的脚本。您希望脚本执行的所有操作是在任何远程应用程序停止运行时向您发出警报。此应用程序的理想工具是Windows脚本。只需创建一个名为handshaking.wsf的新文本文件,然后粘贴以下脚本即可。您正在尝试访问。在这种情况下,对于我的测试,它包含三行,分别包含MyComputerName,MyOtherComputer和YetAnotherComputer。
上面的脚本将记录您的计算机列表,并使用网络路径访问远程计算机(您需要显然是一名管理员),如果该文件存在,它将删除它。如果文件不存在,它将发出警报。
运行我的WSF监视脚本,由于找到了文件,因此它没有在第一台计算机上发出警报,但在另一台计算机上却发出了警报。两个是因为这些远程应用程序尚不存在,并且尚未运行。
现在,要确保您的监视软件能够正常运行并检查所有远程计算机是否在运行您的程序,将需要将上述WSF脚本设置为每5分钟运行一次的计划任务。
只需在服务器或主PC上创建指向该脚本的任务即可。
并创建一个不确定的时间表,每5分钟运行一次您的监视脚本。
现在,仅需使用这两个简单脚本–一个VBA代码段已嵌入到您现有的任何Office程序中,而一个Windows脚本则不断监视这些远程程序–当有人关闭该远程程序或PC关闭时,您会立即收到警报,
如果您在Windows环境中工作,并且已经使用Office软件创建了许多关键应用程序,那么此技术是一种非常快速且廉价(免费!)的方法。来远程监视所有这些关键应用程序。
试一试,让我知道它对您有什么帮助?当您的系统之一出现故障时,您能以多快的速度打动所有同事?在下面的评论部分中分享您的想法和经验。
图片来源:年轻人通过Shutterstock指向计算机
标签: 编程 Visual Basic编程