WScript对象是微软Windows 脚本宿主的根对象(Microsoft Windows Script Host ),WshShell是用于对Windows 内核的访问对象,它是WScript对象的子对象。
WshShell对象可以操作注册表,创建快捷方式,或者访问系统文件夹,还可以处理环境变量等。
使用WshShell对象的RegRead方法可以读取注册表的键值的数据,它的语法如下:
object.RegRead(strName)
其中参数strName可以是注册表的键名称,也可以是注册表的键值名称。
当指定的是键名称时,必须在最后输入反斜杠符号,比如:“HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Excel\StatusBar\”,否则会报错。
当指定的是注册表键的名称时,读取的是该键的默认值的数据。
当指定的是键值名称时,不需要在最后输入反斜杠符号,比如:HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Excel\StatusBar\MacroRecord。
比如我们要读取注册表的键“HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Excel\StatusBar”的值“MacroRecord”的数据,可以使用如下的代码:
Sub QQ1722187970()
Dim oWShell
Set oWShell = CreateObject("WScript.Shell")
Dim sValue As String
Dim sKey As String
'键的名称
sKey = "HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Excel\StatusBar"
'键值的名称
sValue = "MacroRecord"
With oWShell
'sKey & "\"返回的是键的默认键值的数据
Debug.Print .RegRead(sKey & "\")
'sKey & "\" & sValue返回的是键的指定键值的数据
Debug.Print .RegRead(sKey & "\" & sValue)
'没有加结尾反斜杠无法返回键的默认键值数据,会报错
Debug.Print .RegRead(sKey)
End With
End Sub


发表评论