如何在vba中用WScript.WshShell新增、修改、删除注册表的键值数据?

如何在vba中用WScript.WshShell对象读取注册表的键值数据?一文我们介绍了读取注册表键值数据的方法。今天我们介绍用WScript.WshShell新增、修改注册表键、键值的数据的方法。

WshShell对象的RegWrite方法可以新增、修改注册表键、键值的数据,它的语法如下:

object.RegWrite(strName, anyValue [,strType])

其中参数strName表示要操作的键或者键值,anyValue为要新增、修改的值,strType为值的数据类型,可以有以下几种:

REG_SZ、REG_EXPAND_SZ、REG_DWORD、REG_BINARY。

详细的数据类型解释说明可以看注册表的键值的数据类型和常量定义分别是什么?

WshShell对象的RegDelete方法可以删除注册表的键或者键值,它的语法如下:

object.RegDelete(strName)

如以下代码将演示把注册表的键值HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Excel\StatusBar\MacroRecord的数据修改,在注册表的键下新建一个名为abc的键值,删除注册表的键值:

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
        '把键值HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Excel\StatusBar\MacroRecord的数据修改为2
        Debug.Print .RegWrite(sKey & "\" & sValue, 2, "REG_DWORD")
        '在注册表键HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Excel\StatusBar下新建一个名为abc的键值
        .RegWrite sKey & "\" & "abc", 2, "REG_DWORD"
        '删除刚刚新建的键值abc
        .RegDelete sKey & "\" & "abc"
    End With
End Sub

 

 

       

发表评论