如何用 WSH的 regwrite 写长二进制数值到注册表的某个键值?

changechange 2006-03-07 02:23:18
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
...全文
150 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
rainstormmaster 2006-03-07
  • 打赏
  • 举报
回复
用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

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧