代码如下:

'效率有点低,而且有限制,算是第一个版本吧,有些不好的地方还请多多指教啊
compareRegister "log1.reg","log2.reg"
'**************************************
'功能:采用wmi监听当前注册表是否有变动,如果有变动,导出变动后的注册表文件,然后比较导出前和导出后的文件的不同之处,并显示出现
'参数:filename1表示注册表监听前的文件名,filename2表示注册表修改变动后的文件名
'返回值:无
'**************************************
Function compareRegister(filename1,filename2)wbemFlagReturnImmediately = 16wbemFlagForwardOnly = 32IFlags = wbemFlagReturnImmediately + wbemFlagForwardOnlyresult=""Set wmiServices = GetObject("winmgmts:root/default") Set dtmCreateTime = CreateObject("WbemScripting.SWbemDateTime")Set ws=WScript.CreateObject ("wscript.shell")Set colRegChanges = wmiServices.ExecNotificationQuery _("SELECT * FROM RegistryTreeChangeEvent " _& "WHERE Hive='HKEY_LOCAL_MACHINE' AND RootPath=''",, IFlags)ws.Run "regedit -e "&filename1,0,True '修改前的,导出注册表文件ws.Popup "已经导出操作前注册表为REG文件....",2Do While (True)  Set TreeChange = colRegChanges.NextEventws.Run "regedit -e "&filename2,0,True '修改后的,导出注册表文件ws.Popup "已经导出了修改后注册表为REG文件。。。",2'Time_Created property is 64-bit and' must be converted into CIM_DateTime formatdtmCreateTime.SetFileTime TreeChange.Time_Created, false'Convert to VT_DATE format using GetVarDate' for printing to screenWScript.Echo "注册表变动时间 = " & dtmCreateTime.GetVarDate() _& VBNewLine _& "主键根目录 = " & TreeChange.Hive & VBNewLine _& "子目录名称 = "& TreeChange.RootPath  &vbNewLine _& "创建时间为:"&treechange.time_created &vbNewLine _& "描述:"&treechange.security_descriptor&vbNewLine _compareDif filename1,filename2  '比较注册表前后的两个文件的内容变化Loop
end Function'compareDif "d:\test1.txt","d:\test2.txt"
''**************************************
'功能:比较两个文件,显示文件中不同的地方,前提是:filename2的行数一定要大于filename的行数
'参数:filename1表示注册表监听前的文件名,filename2表示注册表修改变动后的文件名
'返回值:无
'**************************************
Function compareDif(filename1,filename2)On Error Resume Nextmsg=""Const ForReading = 1, ForWriting = 2, ForAppending = 8Const TristateUseDefault = -2, TristateTrue = -1, TristateFalse = 0Set fso=CreateObject("scripting.filesystemobject")Set readfile1=fso.GetFile(filename1)Set readfile2=fso.GetFile(filename2)Set ts1=readfile1.OpenAsTextStream(ForReading,TristateUseDefault)Set ts2=readfile2.OpenAsTextStream(ForReading,TristateUseDefault)If Not ts1.AtEndOfStream thenbeforereg=Split(ts1.ReadAll,vbCrLf)End IfIf Not ts2.AtEndOfStream thenafterreg=Split(ts2.ReadAll,vbCrLf)End If
'    ws.Popup "正在进行比较注册表,不要关闭请稍等。。。。",5For i=0 To UBound(afterreg)-1If afterreg(i)<>beforereg(i) Thenmsg=msg&"--------------------------------------------"&vbCrLf&"操作前注册表:"&beforereg(i-1)&vbcrlf&beforereg(i)&vbcrlf&"操作后注册表:"&afterreg(i-1)&vbcrlf&afterreg(i)&vbcrlfEnd ifnext MsgBox msgSet ts2=nothingSet ts1=NothingSet readfile2=NothingSet readfile1=NothingSet fso=Nothing
End Function

以上代码测试可用,可参考。

转载于:https://www.cnblogs.com/alterhu/archive/2012/04/08/2437837.html

VBS随时监视注册表的变化,记录有变化的值或键等信息(包括一个文件内容比较函数)...相关推荐

  1. 计算机编辑功能在哪,注册表编辑器怎么打开-电脑的剪切板在哪里 电脑剪切板里面的内容怎么修改...

    使用Windows系统,经常用到就是 "复制"."剪切"."粘贴" 的操作步骤.有时不小心将剪切板中的内容粘贴到某个不知名的地方,导致存储空 ...

  2. 监视注册表变化 - Registry Auditing

    1. 在管理员模式下运行CMD,输入以下命令 auditpol /set /subcategory:"{0CCE921E-69AE-11D9-BED3-505054503030}" ...

  3. C 怎么处理windows路径_在Windows中使用msix打包工具监视注册表和文件

    以下内容不涉及任何专业知识,所有人都可以看懂. 此方法只适用于Windows10及更高版本 1.目的 有时候,我们需要找到知道某一时间段内某个应用程序对系统做了哪些修改,例如: 1.1.Windows ...

  4. WIN10注册表出现“无法删除所有指定的值”解决办法

    win --> cmd  右键以管理员运行  -->  regedit 进入注册表 --> 找到你要删除的值的所属文件夹 --> 右键权限 -->修改为完全控制

  5. Windows注册表互换Caps Lock、Shift、Ctr l键

    按键映射 在注册表找到 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout\ 下如果没有Scancode Map就新 ...

  6. 修改注册表出现“无法编辑UncheckedValue:写该值的新内容时出错”的解决方法

    当我想隐藏已知文件扩展名时,发现如下图所示这个选项始终无法勾选.用度娘查询得知到注册表里修改,修改HEKY_LOCAL_MACHINE/SOFTWARE/MICROSOFT/WINDOWS/CURRE ...

  7. Mybatis 向数据库表中插入记录 不携带id值

    MapperXml.xml文件 <insert id="addNews" parameterType="com.tedu.pojo.News"  useG ...

  8. 通过修改注册表实现Windows 隐藏账户

    Windows 隐藏账户  以下在windows 2003上操作<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:o ...

  9. (windows注册表大全)别人写的,我记录下

    一.什么是注册表 注册表是2000/XP操作系统.硬件设备以及客户应用程序得以正常运行和保存设置的核心"数据库",也可以说是一个非常巨大的树状分层结构的数据库系统.         ...

最新文章

  1. Python运维开发基础01-语法基础【转】
  2. TP5_接口开发之全局异常控制
  3. Web服務器的配置方法
  4. 一、初识函数定义与调用
  5. 本田da屏怎么进wince系统_本田新XR-V首试:配置提升,依然好开
  6. [置顶]       jBPM4工作流开发实战 之 第二部分 jBPM4开发入门
  7. sci的JCR分区和中科院分区
  8. 铺管家教育:拼多多如何提升星级
  9. 嵌入式linux运行mbedtls,mbedTLS(PolarSSL)简单思路和函数笔记(Client端)
  10. pdf怎么压缩的小一点?
  11. 图像颜色与强度分离(intensity and color decouple)方法 matlab代码
  12. 高考2021加3科目成绩查询,官方解读:2021新高考实施方案正式公布,首选科目按原始分计入总成绩!...
  13. Flutter 发布iOS版本app
  14. Android使用WebView无法显示网页
  15. 学习金蝶ERP 之 K3 介绍
  16. 解决百度网盘限速超简单
  17. Linux 内存的延迟分配
  18. 如何使用射手影音寻找字幕
  19. Tika结合Tesseract-OCR 实现光学汉字识别(简体、宋体的识别率百分之百)—附Java源码实现及真实测试数据和训练集下载地址...
  20. 基于springboot地方旅游系统的设计与实现

热门文章

  1. [Google Guava] 9-I/O
  2. 读《程序员必读的职业规划书》
  3. 让开发自动化持续重构 --使用静态分析工具识别代码味道
  4. 大志非才不就,大才非学不成—博文资源汇总
  5. 模式识别Pattern Recognition和机器学习Machine Learning资源
  6. 人工智能:第五章 计算智能(2)
  7. 编程之美-最大公约数问题方法整理
  8. Python入门学习(四)
  9. jmeter将响应结果由Unicode转码成中文展示
  10. PHP获取当前页面的网址