9,506
社区成员
发帖
与我相关
我的任务
分享
oReg.DeleteKey k_root, path & subkey & "\" '删除注册表的代码
第56行改下'*************************************
'清理含有某关键字的注册表子键和键值
'*************************************
Const flag = "360" '需清理的关键字
On Error Resume Next
'***************************************************************************
'''配置环境参数
'***************************************************************************
'''设置注册表5大根键,----------------------------------------------------①
Const HKEY_CLASSES_ROOT = &H80000000 '''HKCR
Const HKEY_CURRENT_USER = &H80000001 '''HKCU
Const HKEY_LOCAL_MACHINE = &H80000002 '''HKLM
Const HKEY_Users = &H80000003 '''HKU
Const HKEY_Current_Config = &H80000005 '''HKCC
'***************************************************************************
'''设置注册表键值类型,---------------------------------------------------②
Const REG_SZ = 1 '''字符串型
Const REG_EXPAND_SZ = 2 '''扩展字符串型
Const REG_BINARY = 3 '''二进制型
Const REG_DWORD = 4 '''双字节型
Const REG_MULTI_SZ = 7 '''多字符串型
'***************************************************************************
'''-----------------配置环境(路径)----------------------------------------00
Set WshShell = WScript.CreateObject("WScript.Shell")
Set oReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & _
"." & "\root\default:StdRegProv")
'*******************************************************************
' 遍历注册表
'*******************************************************************
TravellReg
Sub TravellReg
TravellRegSub HKEY_CURRENT_USER,"Software\", ""
' TravellRegSub HKEY_CURRENT_USER,"Software\", "windows"
TravellRegSub HKEY_LOCAL_MACHINE,"Software\", ""
TravellRegSub HKEY_LOCAL_MACHINE,"System\", ""
TravellRegSub HKEY_Users,"Software\", ""
End Sub
'参数:
'k_root --------------根键
's_k_path --------------主键路径
Sub TravellRegSub(k_root, sub_path, sub_key)
On Error Resume Next
Dim arrSubKeys, path
If Len(sub_path) > 0 Then
path = path & sub_key & "\"
Else
path =""
End If
EnumValueAndType k_root, path
oReg.EnumKey k_root, path, arrSubKeys
For Each subkey In arrSubKeys
If (InStr(1, subkey, flag, 1) <>0) Then
WScript.Echo path & "路径下存在" & flag &"--:"& subkey '测试代码
'''oReg.DeleteKey k_root, subkey '删除注册表的代码,如果要清除则取消注释
End If
If Trim(subkey) <> "" Then '判断是否还有子键
TravellRegSub k_root, path, subkey
End If
Next
End Sub
'****************************************************************************
'''----------------- 枚举键值、内容和键值类型"KEY_Value_Types"--------------------
'****************************************************************************
Sub EnumValueAndType(strKR, strKSUB)
On Error Resume Next
Dim arrValueStr,strValue, s_chr
oReg.EnumValues strKR, strKSUB, arrValueNames, arrValueTypes
For i=0 To UBound(arrValueNames)
arrValueStr = ""
strValue = ""
s_chr = ""
If Len(arrValueNames(i)) > 0 Then
Select Case arrValueTypes(i)
Case REG_SZ
oReg.GetStringValue strKR, strKSUB, arrValueNames(i), strValue
Case REG_EXPAND_S
oReg.GetExpandedStringValue strKR, strKSUB, arrValueNames(i), strValue
Case REG_BINARY
oReg.GetBinaryValue strKR, strKSUB, arrValueNames(i), arrValues
For j = LBound(arrValues) To UBound(arrValues) 'Step 2
If (arrValues(j))<>0 Or j = UBound(arrValues) - 2 Then
s_chr = s_chr & Chr(arrValues(j))
Else
s_chr = s_chr & " "
End If
Next
s_chr = Replace(s_chr, " ", "|")
s_chr = Replace(s_chr, " ", "")
s_chr = Replace(s_chr, "|", " ")
s_chr = Replace(s_chr, " ", " ")
strValue = strValue & s_chr
Case REG_DWORD
oReg.GetDWORDValue strKR, strKSUB, arrValueNames(i), strValue
Case REG_MULTI_SZ
oReg.GetMultiStringValue strKR, strKSUB, arrValueNames(i), arrValues
For Each strValueSub In arrValues
DuoString = DuoString &vbCrLf&strValueSub
Next
strValue = strValue & DuoString
End Select
If(InStr(1, arrValueNames(i), flag, 1) <> 0) Or _
InStr(1, strValue, flag, 1) Then
WScript.Echo strKSUB&"\"&arrValueNames(i)&"\"&strValue '测试的代码
'''oReg.DeleteValue strKR, strKSUB, arrValueNames(i) '删除注册表键值的代码,如果要清除则取消注释
End If
End If
Next
End Sub
'字符串连接
Function StringLink(str1, str2)
ReDim a_tmp(3)
a_tmp(0) = str1
a_tmp(1) = str2
StringLink = Join(a_tmp, "")
End Function
Set WshShell = Nothing
Set oReg =Nothing
你懂的