VBS通过WMI监视注册表变动的代码
更新时间:2011年10月27日 11:23:48 作者:
似乎有人觉得用VBS监视注册表很高级?使用了WMI事件而已,跟《用VBS监视进程创建和删除》一样
Google一下“VBS监视注册表”,TOP 5都是一模一样的代码,我查了一下,出处是Hey, Scripting Guy! Blog上一篇名为《How Can I Monitor Changes to a Registry Key?》的文章,真是厚颜无耻。
文章我没时间翻译了,贴一下代码:
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\default")
Set colEvents = objWMIService.ExecNotificationQuery _
("SELECT * FROM RegistryKeyChangeEvent WHERE Hive='HKEY_LOCAL_MACHINE' AND " & _
"KeyPath='SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run'")
Do
Set objLatestEvent = colEvents.NextEvent
Wscript.Echo Now & ": The registry has been modified."
Loop其实WMI中有4个类可以监视注册表,分别是
文章我没时间翻译了,贴一下代码:
复制代码 代码如下:
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\default")
Set colEvents = objWMIService.ExecNotificationQuery _
("SELECT * FROM RegistryKeyChangeEvent WHERE Hive='HKEY_LOCAL_MACHINE' AND " & _
"KeyPath='SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run'")
Do
Set objLatestEvent = colEvents.NextEvent
Wscript.Echo Now & ": The registry has been modified."
Loop其实WMI中有4个类可以监视注册表,分别是
看类名就知道分别是做什么的,上面代码用到的是RegistryKeyChangeEvent,即注册表键改变事件。
在这里我不想谈WMI事件的用法,这是很基础的东西;也不想翻译参考文档,如果连这种简单的英语都看不懂,也没必要用WMI了。我认为WMI最难的地方在于里面的类太多了,很多时候不知道该用哪个类来实现想要的功能。而现在,该用哪个类已经很清楚了,本文也可以结束了。
参考链接:Registering for System Registry Events
原文:http://demon.tw/programming/vbs-wmi-monitor-changes-to-a-registry-key.html
您可能感兴趣的文章:
相关文章
使用element-ui的upload组件上传代码包时遇到的问题小结
这篇文章主要介绍了使用element-ui的upload组件上传代码包时遇到的问题及总结,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2022-12-12JavaScript使用setInterval()函数实现简单轮询操作的方法
这篇文章主要介绍了JavaScript使用setInterval()函数实现简单轮询操作的方法,以实例形式分析了轮询操作的原理与javascript实现技巧,需要的朋友可以参考下2015-02-02
最新评论