Function Test()
    '如何用 WSH的 regwrite 写长二进制数值到注册表的某个键值?
    
    Dim a
    Dim p As Long       '这里到底该用什么类型的变量?
    
    Set a = CreateObject("WScript.Shell")
    '我要创建一个二进制类型的键值,该如何创建?
    '二进制数值如图:
    'http://access911.net/csdn/filedescription.asp?mdb=2006-3-7&id=4&mode=3
    '所示,我该如何将上述值赋值给 test1 这个键值。注意,不能用直接
    '键入 &H010003C6685CAB60C400005208000249F0000443685CAF6BEC 的方法,因为这个值是变动的,我需要用变量来赋值
    
    p = CLng("&H" & "010003C6685CAB60C400005208000249F0000443685CAF6BEC")
    a.RegWrite "HKLM\SYSTEM\ControlSet001\Control\Print\Forms" & "\" & "test1", p, "REG_BINARY"End Function

解决方案 »

  1.   

    用api吧,WSH对byte数组的处理有问题:
    首先,建一个模块,将
    http://www.chinaaspx.com/archive/VB/19324.htm
    的代码粘贴到模块中
    然后,在窗题上添加一个按钮:
    Private Sub Command1_Click()
        Dim s As String
        s = "00000000000000010003C6685CAB60C400005208000249F0000443685CAF6BEC" '修改了一下你的字串,凑够了32个字节
        Dim buff() As Byte
        Dim i As Long
        i = Len(s)
        If (i Mod 2) = 1 Then
            s = "0" & s
        End If
        i = Len(s)
        ReDim buff(i / 2 - 1)
        Dim j As Long
        For i = 0 To UBound(buff)
            j = UBound(buff) - i
            buff(j) = Val("&H" + Mid(s, 2 * i + 1, 2))
        Next
        SetKeyValue HKEY_LOCAL_MACHINE, "SYSTEM\ControlSet001\Control\Print\Forms", "test1", buff, REG_BINARY
    End Sub