使用VBS操作注册表,通常使用RegRead/RegWrite/RegDelete方法,如:

RegRead:

   'read.vbs(将以下代码存为read.vbs文件)
   Dim OperationRegistry
   Set OperationRegistry=WScript.CreateObject("WScript.Shell")
   Dim Read_Data1,Read_Data2
   Read_Data1=OperationRegistry.RegRead("HKCR\.xxf\")
   '读取根键HKEY_CLASSES_ROOT之下的.xxf主键的默认值,并将该数据送至变量Read_Data1
   Read_Data2=OperationRegistry.RegRead("HKCR\.xxf\value")
   '读取.xxf主键之下的value键值的数据,并将该数据送至变量Read_Data2
   MsgBox("Default="&Read_Data1&" value="&Read_Data2)
   '将读取的数据显示出来

RegWirte:

'write.vbs
Dim OperationRegistry
Set OperationRegistry=WScript.CreateObject("WScript.Shell")
Default=OperationRegistry.RegRead("HKCR\")
'获取一个空值 (null)
 
OperationRegistry.RegWrite "HKCR\.xxf\",Default
'在根键HKEY_CLASSES_ROOT之下新建主键.xxf,并置其默认值为空
 
OperationRegistry.RegWrite "HKCR\.xxf\","xxffile"
'在根键HKEY_CLASSES_ROOT之下新建主键.xxf,并置其默认值?quot;xxffile"
 
OperationRegistry.RegWrite "HKCR\.xxf\value1","string"
'在主键.xxf之下新建一个字符串型键值value1,并置其初始值为"string"
 
OperationRegistry.RegWrite "HKCR\.xxf\value2",,"REG_DWORD"
'在主键.xxf之下新建一个REG_DWORD型键值value2,并置其初始值为1
 
OperationRegistry.RegWrite "HKCR\.xxf\value3",0Xff,"REG_BINARY"
'在主键.xxf之下新建一个二进制型键值value3,并置其初始值为十六进制的ff

RegDelete:

'delete.vbs

Dim OperationRegistry

Set OperationRegistry=WScript.CreateObject("WScript.Shell")

OperationRegistry.RegRead("HKCR\.xxf\value")

'删除.xxf主键之下的value键值

OperationRegistry.RegRead("HKCR\.xxf\")

'删除根键HKEY_CLASSES_ROOT之下的.xxf主键

但是,如果要插入十六进制的数据就会有问题,如写入以下注册表键值,如果使用RegWrite,会报“类型不匹配”错误,因为RegWirte在写十六进制的值时,只支持一个值,不支持数组:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3]
"{AEBA21FA-782A-4A90-978D-B72164C80120}"=hex:1a,37,61,59,23,52,35,0c,7a,5f,20,\
17,2f,1e,1a,19,0e,2b,01,73,13,37,13,12,14,1a,15,2a,4e,2c,08,0d,20,1b,28,18,\
36,32

使用RegWrite方式

Dim OperationRegistry
Set OperationRegistry=WScript.CreateObject("WScript.Shell")
OperationRegistry.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3","0xff,0x11","REG_BINARY"

报错如下:

---------------------------
Windows Script Host
---------------------------
脚本: C:\Work\Documents\BOC\BOC.Bancslink\VBS\ie_config\ie_forie - 副本.vbs
行: 3
字符: 1
错误: 类型不匹配
代码: 800A000D
源: Microsoft VBScript 运行时错误 ---------------------------
确定
---------------------------

解决方法:

Const HKEY_CURRENT_USER = &H80000001
strComputer = "." Set objRegistry = GetObject _
("winmgmts:\\" & strComputer & "\root\default:StdRegProv") strKeyPath = "Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3"
strValueName = "{1EBA21FA-782A-4A90-978D-B72164C80120}"
arrValues = Split("1a,37,61,59,23,52,35,0c,7a,5f,20,17,2f,1e,1a,19,0e,2b,01,73,13,37,13,12,14,1a,15,39,4e,2c,08,0d,20,1b,28,18,36,32", ",")
For i = 0 To UBound(arrValues) : arrValues(i) = CByte("&H" & arrValues(i)) : Next errReturn = objRegistry.SetBinaryValue _
(HKEY_CURRENT_USER, strKeyPath, strValueName, arrValues)

参考:

http://www.cnblogs.com/heimirror/archive/2008/06/25/1229483.html

https://msdn.microsoft.com/de-de/library/aa393286%28v=vs.85%29.aspx

http://stackoverflow.com/questions/26967459/convert-hex-string-into-array-and-write-it-to-registry-vbscript

VBS 操作注册表 十六进制的更多相关文章

  1. c++ 操作注册表

    1.       注册表简介 注册表是为Windows NT和Windows95中所有32位硬件/驱动和32位应用程序设计的数据文件,用于存储系统和应用程序的设置信息.16位驱动在Winnt (Win ...

  2. bat生成vbs通过注册表禁用或启用USB端口

    在网上找到的资料,经过自己简单的修改调整,通过bat生成vbs文件,由vbs文件操作注册表的键值,达到启用和禁用USB端口的目的. 当然,你也可以完全使用BAT操作注册表来完成修改注册表的键值的目的, ...

  3. [转]C#操作注册表

    原文链接:http://www.cnblogs.com/txw1958/archive/2012/08/01/csharp-regidit.html 下面我们就来用.NET下托管语言C#注册表操作,主 ...

  4. [荐]使用Js操作注册表

    使用Js操作注册表 要操作注册表需要通过ActiveX控件调用WScript.shell对象,通过该对象的一些方法来操作. WshShell对象:可以在本地运行程序.操纵注册表内容.创建快捷方式或访问 ...

  5. .Net操作注册表--un

    C#操作注册表 导入命名空间 Using MicroSoft.Win32;//64位系统装的64位版本

  6. C#操作注册表全攻略

    相信每个人对注册表并不陌生,在运行里面输入“regedit”就可以打开注册表编辑器了.这东西对Windows系统来说可是比较重要的,也是病 毒常常会光顾的地方,比如病毒和恶意软件常常会在注册表的启动项 ...

  7. C#获取cpu序列号 硬盘ID 网卡硬地址以及操作注册表 .

    转:http://blog.csdn.net/smartsmile2012/article/details/8682295 #region 获取cpu序列号 硬盘ID 网卡硬地址 /**/ /// & ...

  8. win7 64bit+vs2010 操作注册表

    注册表五个根键 HKEY_CLASSES_ROOT--管理文件系统  HKEY_LOCAL_MACHINE--管理当前系统硬件配置  HKEY_LOCAL_USER--管理系统当前用户配置  HKEY ...

  9. How to:Installshield判断操作系统是否为64位,并且为操作注册表进行设置

    原文:How to:Installshield判断操作系统是否为64位,并且为操作注册表进行设置 IS脚本操作注册表在64位平台下必须有特殊的设置 if (SYSINFO.bIsWow64) then ...

随机推荐

  1. Dynamic Binding & Static Binding

    Reference: JavaPoint BeginnerBook What is Binding Connecting a method call to the method body is kno ...

  2. SAE Python使用经验 好文推荐

    SAE Python使用经验 好文推荐 SAE Python使用经验 好文推荐

  3. Hadoop 2、配置HDFS HA (高可用)

    前提条件 先搭建 http://www.cnblogs.com/raphael5200/p/5152004.html 的环境,然后在其基础上进行修改 一.安装Zookeeper 由于环境有限,所以在仅 ...

  4. [转载]date命令时间转换

    Linux时间戳和标准时间的互转 在LINUX系统中,有许多场合都使用时间戳的方式表示时间,即从1970年1月1日起至当前的天数或秒数.如/etc/shadow里的密码更改日期和失效日期,还有代理服务 ...

  5. javascript对URL中的参数进行简单加密处理

    javascript的api本来就支持Base64,因此我们可以很方便的来进行编码和解码. var encodeData = window.btoa("name=xiaoming&a ...

  6. Struts分页的一个实现

    在Web应用程序里,分页总让我们开发人员感到很头疼,倒不是因为技术上有多么困难,只是本来和业务没有太多关系的这么一个问题,你却得花不少功夫来处理.要是稍不留神,时不时出点问题就更郁闷了.我现在做的一个 ...

  7. java动态代理和cglib动态代理

    动态代理应用广泛,Spring,Struts等框架很多功能是通过动态代理,或者进一步封装来实现的. 常见的动态代理模式实现有Java API提供的动态代理和第三方开源类库CGLIB动态代理. Java ...

  8. HashMap的存储结构及原理

    1.HashMap的数据结构(HashMap通过hashcode对其内容进行高速查找,是无序的) 数据结构中有数组和链表来实现对数据的存储,但这两者基本上是两个极端. 数组 :数组的存储区是连续的,占 ...

  9. DataTable复制自身行

    在我们工作的过程中有可能要使用DataTable产生一些重复数据(在不重复读取数据库的情况下) 无废话,直接上代码 DataTable复制自身一行(目的产生重复数据),已测试通过可直接复制 /// & ...

  10. Jsp request

    <%@ page language="java" import="java.util.*" pageEncoding="GB18030" ...