Board logo

标题: [已解决]VBS将字符串转换为二进制并写入注册表 [打印本页]

作者: fsed    时间: 2009-7-13 17:11     标题: [已解决]VBS将字符串转换为二进制并写入注册表

下午发了个帖没说清楚,再说明一下,请大家帮忙看看如何用vbs实现。写这个脚本的目的是将输入的字符串转换为二进制并写入注册表,这个注册表键值格式要求每个二进制数值之间需插入"00"、最后以"0000"结尾。例如1234字符串对应的二进制代码为:31323334,按键值格式要求修改后应为:31 00 32 00 33 00 34 00 00 00。
以下为之前写的代码,但因处理后仍为字符串无法写入注册表。对vbs也不大熟,大家帮忙看看如何才能实现,谢了。
  1. 'Define constant
  2. Const HKEY_CR = &H80000000
  3. Const REG_BINARY = 3
  4. 'string varable
  5. strComputer = "."
  6. strKeyPath = "11223344"
  7. strValue = "BBAA"
  8. 'Input string1
  9. dim Str2Hex
  10. string1 = InputBox("请输入")
  11.         Dim i, sResult
  12.         sResult = ""
  13.         For i = 1 To Len(string1)
  14.                 sResult = sResult & "&H" & Hex(Asc(Mid(string1, i, 1))) & "," & "&H00,"
  15. if i = Len(string1) then
  16.   sResult = sResult & "&H00,&H00"
  17. end if
  18.         Next
  19.         Str2Hex = sResult
  20. wsh.echo Str2Hex
  21. 'binary array
  22. Dim arrData
  23. arrData = Array(Str2Hex)
  24. 'registry object
  25. Set objRegistry = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\default:StdRegProv")
  26. 'create registry key
  27. objRegistry.CreateKey HKEY_CR, strKeyPath  
  28. 'setup the binary keyvalue
  29. retcode = objRegistry.SetBinaryValue(HKEY_CR, strKeyPath, strValue, arrData)
复制代码

[ 本帖最后由 fsed 于 2009-7-14 11:42 编辑 ]
作者: slore    时间: 2009-7-13 18:23

都说了类型不匹配。。。

"&H78" 是字符串
&H78是一个数
作者: fsed    时间: 2009-7-14 09:46     标题: 回复 2楼 的帖子

因为字符串等待输入无法直接写入脚本,代码怎么修改呢?
作者: fsed    时间: 2009-7-14 10:11

咋没人关注呢,有没有热心的版主帮忙看看啊
作者: fsed    时间: 2009-7-14 11:43

上网搜索了一下搞定了,使用split替代array函数即可。不过还是感谢版主的关注。




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2