vbs 读写注册表

//vbs


'变量定义
Dim writeName,writeValue,fileName,regLoaction,regApp

'创建注册表编辑器对象
Set regApp=WScript.CreateObject("WScript.Shell")

'配置文件名
fileName="FullScan.txt"
'输入键名
writeName="xiaoqiang"
'输入键值
writeValue="test"

'************************脚本运行区间********************************

'根据配置文件获取注册表路径数组
regLoaction=getRegPathArray(getFileText(fileName))

'写入注册表
write regLoaction,writeName,writeValue

'读取写入的键值 生成并生成结果文件
read regLoaction,writeName

 

'************************函数定义********************************
'读注册表
Function read(regLoaction,writeName)
   Dim returnStrArray(),j
   j=0
   If writeName="" or writeValue="" then
      msgbox "错误!!请输入键名和键值"
   else
     for i=0 to ubound(regLoaction)
  ReDim Preserve returnStrArray(j)    
         regPath=regLoaction(i)&"\"&writeName
         returnStrArray(j)=regPath&"  "&regApp.RegRead(regPath)
         j=j+1
     Next
   End if
   writeResult returnStrArray
End Function

'写入注册表
Function write(regLoaction,writeName,writeValue)
   If writeName="" or writeValue="" then
      msgbox "错误!!请输入键名和键值"
   else
     for i=0 to ubound(regLoaction)
   regApp.RegWrite regLoaction(i)&"\"&writeName,writeValue
     Next
   End if
End Function

'输出结果文件
sub writeResult(contentArray)
   Const ForReading = 1, ForWriting = 2
   Dim fso,f,returnStrArray(),i
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set f = fso.OpenTextFile("result.txt", 2,true)
   for i=0 to ubound(contentArray)
  f.writeline(contentArray(i))
   Next
   f.close()
End Sub

'得到注册表路径数组
Function getRegPathArray(sourceArray)
   Dim head,returnStrArray(),j
   j=0
   for i=0 to ubound(sourceArray)
      If sourceArray(i)="[HKEY_LOCAL_MACHINE]" then
  head="HKLM"
      elseif  sourceArray(i)="[HKEY_USERS]" then
         head="HKEY_USERS\.DEFAULT"
      elseif  sourceArray(i)="[HKEY_CURRENT_USER]" then
         head="HKCU"
      elseif  sourceArray(i)="[HKEY_CLASSES_ROOT]" then
         head="HKCR"
      elseif  sourceArray(i)="[HKEY_CURRENT_CONFIG]" then
         head="HKEY_CURRENT_CONFIG"
      else
         ReDim Preserve returnStrArray(j)
         str=head&split(sourceArray(i),"=")(1)
         returnStrArray(j)=str
         j=j+1
      End If
   Next
   getRegPathArray=returnStrArray
End Function


'得到文件内容存入数组
Function getFileText(fileName)
   Const ForReading = 1, ForWriting = 2
   Dim fso,f,returnStrArray(),i
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set f = fso.OpenTextFile(fileName, 1)
   i=0
   do while f.atendofstream<>true
      ReDim Preserve returnStrArray(i)
      returnStrArray(i)=f.readline()
      i=i+1
   loop
   f.close()
   getFileText=returnStrArray
End Function

 

 

//配置文件

QuickScan.txt

 

[HKEY_LOCAL_MACHINE]
1=\Software\Microsoft\Windows\CurrentVersion\Run
2=\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run\
3=\Software\Microsoft\Windows\CurrentVersion\RunOnce\
4=\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce\
5=\Software\Microsoft\Windows\CurrentVersion\RunOnceEx
6=\Software\Microsoft\Windows\CurrentVersion\Policies\System\Shell\
7=\Software\Microsoft\Windows\CurrentVersion\ShellServiceObjectDelayLoad\
8=\Software\Policies\Microsoft\Windows\System\Scripts\
[HKEY_CURRENT_USER]
1=\Software\Microsoft\Windows\CurrentVersion\Run
2=\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run\
3=\Software\Microsoft\Windows\CurrentVersion\RunOnce\
4=\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce\
5=\Software\Microsoft\Windows\CurrentVersion\RunOnceEx
6=\Software\Microsoft\Windows\CurrentVersion\Policies\System\Shell\
7=\Software\Microsoft\Windows\CurrentVersion\ShellServiceObjectDelayLoad\
8=\Software\Policies\Microsoft\Windows\System\Scripts\

你可能感兴趣的:(vbs,注册表)