[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[已解决]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 编辑 ]
1

评分人数

    • keen: 感谢主动给标题标注[已解决]字样PB + 2

都说了类型不匹配。。。

"&H78" 是字符串
&H78是一个数

TOP

回复 2楼 的帖子

因为字符串等待输入无法直接写入脚本,代码怎么修改呢?

TOP

咋没人关注呢,有没有热心的版主帮忙看看啊

TOP

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

TOP

返回列表