快速业务通道

用vbs记录屏幕保护程序的开始时间和结束时间

作者 佚名 来源 ASP编程 浏览 发布时间 2013-07-09
问:
您好,脚本专家!如何记录屏幕保护程序的开始时间和结束时间?
--JS
答:
您好,JS。您知道,一位脚本专家(嘿,谁说“肯定是Greg”?)年纪大得记得屏幕保护程序刚出现的日子。那时,这类脚本毫无意义。毕竟,屏幕保护程序启动后,每个人都神魂颠倒,从未想过让它结束。事实上,作为计算机支持人员的这位脚本专家首先必须做的一件事就是在每个人的桌面上创建快捷方式,使他们能够随时启动“飞转的小烤炉”。
那时人们很容易得到快乐。
啊,但是活在过去没有意义,对吧?在今天的现代社会中,显然不仅需要停止屏幕保护程序,还需要记录停止的时间。明确这一点后,让我们来看一看下面这个WMI事件监控脚本,它会跟踪屏幕保护程序的每次启动和停止:
复制代码 代码如下:

strComputer="."
SetobjWMIService=GetObject("winmgmts:\\"&strComputer&"\root\cimv2")
SetobjEventSource=objWMIService.ExecNotificationQuery_
("SELECT*FROM__InstanceOperationEventWITHIN5WHERETargetInstanceISA''Win32_Process''")
DoWhileTrue
SetobjEventObject=objEventSource.NextEvent()
IfRight(objEventObject.TargetInstance.Name,4)=".scr"Then
SelectCaseobjEventObject.Path_.Class
Case"__InstanceCreationEvent"
Wscript.Echo"Screensaver"&objEventObject.TargetInstance.Name&_
"started:"&Now
Case"__InstanceDeletionEvent"
Wscript.Echo"Screensaver"&objEventObject.TargetInstance.Name&_
"ended:"&Now
EndSelect
EndIf
Loop
它看起来的确有点复杂,不是吗?但是别慌:就设计而言,WMI事件脚本总是看起来有点复杂。幸运的是,这些脚本只是看起来复杂;您会看到,这些脚本实际上并不那么难理解。
注意:好吧,我们最好对最后一句陈述加以限定:只要您了解WMI事件构成的基本思想,就不那么难理解。如果您还不了解,最好花点时间看看脚本编写第2周网络广播。这个网络广播将为您提供了理解今天专栏文章所需的所有背景信息。
好主意!尽管可能没有有助于搞清楚我们的某一篇专栏文章的信息,但至少有助于搞清楚这个脚本代码的意思。
这个特定脚本的开始是以历史悠久的方式连接到本地计算机上的WMI服务。通常到这里,我们要执行WMI查询以返回信息。正如您所看到的,在这个脚本中我们也要这么做,只是查询看起来有点不同:
SetobjEventSource=objWMIService.ExecNotificationQuery_
("SELECT*FROM__InstanceOperationEventWITHIN5WHERETargetInstanceISA''Win32_Process''")
不用说,这不是您所习惯编写的WMI查询类型,因为我们调用的是ExecNotificationQuery方法,而不是ExecQuery。(为什么呢?因为要监控WMI事件,就必须使用ExecNotificationQuery方法。)今天我们无法详细解释这个查询,但我们可以说,我们要求WMI只要有WMI事件(创建、删除、修改)发生,就立刻通知我们。这里只有一个问题:我们只想当TargetInstance(创建、删除或修改的项目)是Win32_Process类的实例时才得到通知。
注意:当然,从技术角度来说,还有第二个问题:我们只是每5秒钟检查一次新事件。如果屏幕保护程序启动,3秒钟之后结束,我们很可能就不会得到通知了。
换句话说,假设创建了一个新文件。新文件是Win32_Process类的实例吗?不是;它是CIM_DataFile类的实例。因此,我们不想得到通知。假设修改了一个服务。我们想要得到通知吗?不想要,因为服务是Win32_Service类的实例。好了,假设新进程(例如屏幕保护程序)启动。我们想要得到通知吗?当然想要。别忘了,新进程可是Win32_Process类的实例。任何时候如果创建、删除或修改进程,我们都想得到通知。
不过,这些您已经意识到了,对吧?
为了获得这些通知,我们建立一个当True等于True时运行的Do循

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号