日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發布時間:2025/3/21 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 VBS随时监视注册表的变化,记录有变化的值或键等信息(包括一个文件内容比较函数)... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

代碼如下:

'效率有點低,而且有限制,算是第一個版本吧,有些不好的地方還請多多指教啊 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随时监视注册表的变化,记录有变化的值或键等信息(包括一个文件内容比较函数)...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。