windows下注册表脚本编写
Reg文件就是注册表脚本文件,双击可将其中的数据写入注册表.利用注册表脚本文件可以对注册表进行关于键值的任何操作,而且还不受注册表被禁用的限制. 平常对注册表的修改大体上可以分为两种: 1.对注册表子键的修改; 2.对子键下的键值的修改; 下面依次对这两种修改做个简略的介绍.
REG文件实际上是一种注册表脚本文件,双击REG文件即可将其中的数据导入到注册表中。 你要导入xx.reg 要:运行cmd——输入reg import xx.reg即可。 (注第二行和最后一行为空)最后一行测试可以补位空。
1、对子键的修改
(1)添加子键 操作:只需在主体文件部分加入"[ ]"即可 例如:在HKEY_CURRENT_USER/Software下添加一个名为"walkrain"的键值. REGEDIT4 -------这个适于用98以上的系统,对于XP系统亦可用"Windows Registry Editor Version 5.00"
[HKEY_CURRENT_USER/Software/walkrain]
注意在REGEDIT4与键值之间空一行!!!
(2)删除子键 操作:若想在注册表中删除一个主键,只需在文体部分加一"-"即可.此时将删除此键值下的所有的键值. 例如:删除刚才建立的子键 REGEDIT4
[-HKEY_CURRENT_USER/Software/walkrain]
2、对键值的修改
(1)添加键值 此种操作,如同在注册表编辑器点击右键添加键值. 键值类型一般包括: 字符串类型(string),二进制类型(hex)和DWORD类型 一般格式为: "键值名称"=键值
若添加的是字符串值,"="后数据用双引号引住.------注意:若数据包含一个文件的完整路径,则"/"用"//"代替. 若添加的是二进制值,"="后为hex:数据. 若添加的是DWORD值,"="为Dword:数据. 若修改的是默认值的键值, 格式为"@="数据"
示例:把刚才建立的子键的默认值改为"lcazhj",并分别建立字符串值"姓名",二进制值"年龄",DWORD值"婚否" REGEDIT4
[HKEY_CURRENT_USER/Software/walkrain] @="lcazhj" "姓名"="LC" "年龄"=hex:22 "婚否"=DWORD:00000000
追加:若添加的键值中的子键不存在,则主动创建子键.
(2)修改键值 与创建类似,对于已存在的键值,只需将正确的键值赋给相应的键值即可,新的数据会覆盖相应的旧数据.
(3)删除键值 与删除子键类似,也是用过"-"实现的,不过此时"-"放在了"="后面. 例如:删除 HKEY_CURRENT_USER/Software/walkrain 下的"姓名"键值 REGEDIT4
[HKEY_CURRENT_USER/Software/walkrain]
"姓名"=-
技巧: 1.我们在双击运行REG文件的时候会出现一个确认对话框,我们可以利用regedit.exe程序的静默安装参数"/s"来去除 方法: 工具--文件夹选项--文件类型--REG--高级,选中操作下面的合并,点击右侧的编辑,在对话框的"用于执行操作的应用程序"下的数据改为 regedit.exe /S "%1" 即可. 2.注册表脚本中注释标识符为";"
3、数据类型为REG_EXPAND_SZ
REG _SZ:双引号即可 REG_DWORD:dword:1234 REG_BINARY:hex:ff REG_EXPAND_SZ:hex(2):3,2 REG_MULTI_SZ:hex(7):2,3,3
4、规则
字符串值S表示:"字符串"="" 二进制值B表示:"二进制"=hex: DWORD(32-位)值D表示:"DWORD(32-位)"=dword:00000000 DWORD(64-位)值Q表示:"DWORD(64-位)"=hex(b):00,00,00,00,00,00,00,00 多字符串值M表示:"多字符串"=hex(7):00,00 可扩充字符串值E表示:"可扩充字符串"=hex(2):00,00
注册表有五个分支,下面是这五个分支的名称及作用: 名称 作用 HKEY_CLASSES_ROOT 存储Windows可识别的文档类型的详细列表,以及相关联的程序 HKEY_CURRENT_USER 存储当前用户设置的信息 HKEY_LOCAL_MACHINE 包括安装在计算机上的硬件和软件的信息 HKEY_USERS 包含使用计算机的用户的信息 HKEY_CURRENT_CONFIG 这个分支包含计算机当前的硬件配置信息
类型介绍 二进制值 REG_BINARY原始二进制数据。大多数硬件组件信息作为二进制数据存储,以十六进制的格式显示在注册表编辑器中。
DWORD 值 REG_DWORD由 4 字节长(32 位整数)的数字表示的数据。设备驱动程序和服务的许多参数都是此类型,以二进制、十六进制或十进制格式显示在注册表编辑器中。与之有关的值是 DWORD_LITTLE_ENDIAN(最不重要的字节在最低位地址)和 REG_DWORD_BIG_ENDIAN(最不重要的字节在最高位地址)。
可扩展字符串值 REG_EXPAND_SZ长度可变的数据字符串。这种数据类型包括程序或服务使用该数据时解析的变量。 多字符串值 REG_MULTI_SZ多字符串。包含用户可以阅读的列表或多个值的值通常就是这种类型。各条目之间用空格、逗号或其他标记分隔。
字符串值 REG_SZ长度固定的文本字符串。
二进制值 REG_RESOURCE_LIST一系列嵌套的数组,用于存储硬件设备驱动程序或它控制的某个物理设备所使用的资源列表。此数据由系统检测并写入 \ResourceMap 树,作为二进制值以十六进制的格式显示在注册表编辑器中。
二进制值 REG_RESOURCE_REQUIREMENTS_LIST一系列嵌套的数组,用于存储设备驱动程序或它控制的某个物理设备可以使用的可能的硬件资源列表,系统将此列表的子集写入 \ResourceMap 树。此数据由系统检测,作为二进制值以十六进制的格式显示在注册表编辑器中。
二进制值 REG_FULL_RESOURCE_DESCRIPTOR一系列嵌套的数组,用于存储物理硬件设备使用的资源列表。此数据由系统检测并写入 \HardwareDescription 树,作为二进制值以十六进制的格式显示在注册表编辑器中
无 REG_NONE没有具体类型的数据。此数据由系统或应用程序写到注册表,作为二进制值以十六进制的格式显示在注册表编辑器中
链接 REG_LINK 一个 Unicode 字符串,它命名一个符号链接。 QWORD值 REG_QWORD由 64 位整数数字表示的数据。此数据作为二进制值显示在注册表编辑器中,最初用在 Windows 2000 中。
5、另类的学习方法
可以在注册表可视化增加键值,然后在文件导出就生成reg文件了,这样就可以进行学习了。