VBS 操作注册表 十六进制
使用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 操作注册表 十六进制的更多相关文章
- c++ 操作注册表
1. 注册表简介 注册表是为Windows NT和Windows95中所有32位硬件/驱动和32位应用程序设计的数据文件,用于存储系统和应用程序的设置信息.16位驱动在Winnt (Win ...
- bat生成vbs通过注册表禁用或启用USB端口
在网上找到的资料,经过自己简单的修改调整,通过bat生成vbs文件,由vbs文件操作注册表的键值,达到启用和禁用USB端口的目的. 当然,你也可以完全使用BAT操作注册表来完成修改注册表的键值的目的, ...
- [转]C#操作注册表
原文链接:http://www.cnblogs.com/txw1958/archive/2012/08/01/csharp-regidit.html 下面我们就来用.NET下托管语言C#注册表操作,主 ...
- [荐]使用Js操作注册表
使用Js操作注册表 要操作注册表需要通过ActiveX控件调用WScript.shell对象,通过该对象的一些方法来操作. WshShell对象:可以在本地运行程序.操纵注册表内容.创建快捷方式或访问 ...
- .Net操作注册表--un
C#操作注册表 导入命名空间 Using MicroSoft.Win32;//64位系统装的64位版本
- C#操作注册表全攻略
相信每个人对注册表并不陌生,在运行里面输入“regedit”就可以打开注册表编辑器了.这东西对Windows系统来说可是比较重要的,也是病 毒常常会光顾的地方,比如病毒和恶意软件常常会在注册表的启动项 ...
- C#获取cpu序列号 硬盘ID 网卡硬地址以及操作注册表 .
转:http://blog.csdn.net/smartsmile2012/article/details/8682295 #region 获取cpu序列号 硬盘ID 网卡硬地址 /**/ /// & ...
- win7 64bit+vs2010 操作注册表
注册表五个根键 HKEY_CLASSES_ROOT--管理文件系统 HKEY_LOCAL_MACHINE--管理当前系统硬件配置 HKEY_LOCAL_USER--管理系统当前用户配置 HKEY ...
- How to:Installshield判断操作系统是否为64位,并且为操作注册表进行设置
原文:How to:Installshield判断操作系统是否为64位,并且为操作注册表进行设置 IS脚本操作注册表在64位平台下必须有特殊的设置 if (SYSINFO.bIsWow64) then ...
随机推荐
- VS环境下的makefile编译
直接找这个了,原来VS也可以makefile,在windows上解析makefile的软件叫NMAKE.exe 打算用命令Cmake -G“NMake Makefiles” 生成VS环境下Nmake的 ...
- 【转】Android将Activity打成jar包供第三方调用(解决资源文件不能打包的问题)
Android中引入第三方Jar包的方法(java.lang.NoClassDefFoundError解决办法) 鼠标右键项目,然后属性,然后java buildpath 然后order and ex ...
- Joomla 3.x. How to edit registration page
Adding registration form fields In order to add new fields to the registration form, database and fi ...
- libeXosip2(2-2) -- eXosip2 network API
eXosip2 network API General purpose API. Functions int eXosip_transport_set (osip_message_t *msg, c ...
- hdu 4135 Co-prime(容斥)
Co-prime Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total S ...
- text-overflow简单使用
text-overflow属性配合overflow才有效果,还记得把文字强制一行显示,如下代码: <!DOCTYPE html> <html lang="zh-cn&quo ...
- epoll的原理和使用方法
设想一个场景:有100万用户同一时候与一个进程保持着TCP连接,而每个时刻仅仅有几十个或几百个TCP连接时活跃的(接收到TCP包),也就是说,在每一时刻,进程值须要处理这100万连接中的一小部分连接. ...
- Katana概述
OWIN owin是web services和framework组件之间的抽象.抽象包括两个核心要素: environment dictionary 这个数据结构存储处理HTTP请求必须的状态和相关的 ...
- oracle数据库连接
///宁采花 8:37:39 /// <summary> /// 获取数据链接 /// </summary> /// <returns></returns&g ...
- C#调用C++的DLL 数据类型转换
/C++中的DLL函数原型为 //extern "C" __declspec(dllexport) bool 方法名一(const char* 变量名1, unsig ...