一、制作REG文件的相关知识
REG文件实际上是一种注册表脚本文件,通过约定的格式,可以利用REG文件直接对注册表进行任何修改操作。制作注册表REG脚本文件,不仅要了解注册表的相关知识,而且还要对注册表内容在REG文件中的表现形式有所了解。
1、注册表中的键值项、键值概述 在注册表中,左栏是路径的主键、子键,右栏是键值项内容,我们只要单击左栏中的任一键,则在右栏中就显示这个键的键值项内容。键值项是由键值名、键值类型、键值三部分构成。键值名的这个键常称“键值键”。在注册表中双击或右击“键值键”,可对键值项进行修改编辑。 键值名:键值名为“默认”的键值项,是在新建主键或子键时系统自动给出的。其它的键值项可自行新建,键值名可自定义。 键值类型:键值类型有“字符串值、二进制值、DWORD值、多字符串值、可扩充字符串值”五类,常用的键值类型是前三类。 键值:什么样的键值类型就定义了什么样的“键值”,常用的三类键值在注册表中的表现形式如下。 ①字符串值:一般用来表示注册表中文件的描述、硬件标识等。通常由字母和数字组成,最大长度不能超过255个字符。 ②二进制值:在注册表中二进制值是没有长度限制,可任意个字节长。在注册表编辑器中,二进制以十六进制的方式显示出来。 ③dword值: 是一个32位(4个字节)长度的数值。在注册表编辑器中,你会发现系统会以十六进制的方式显示DWORD值。 在编辑dword值时,可以选择用十进制还是16进制的方式进行输入。
2、在REG文件中的键值项分析 打开注册表,在HKEY_CLASSES_ROOT\*\shell下新建一主键(有些也称子键),键名为“新键名”,这时系统在右栏上自动给出一个字符串键值项,输入键值:为空。再分别新建二进制值、dword值、多字符串值、可扩充字符串值四个键值项,键值都为空。
现将主键“新键名”导出,键值项的五种不同键值类型,在REG文件中的表现形式如下: -------------------------------------------------------------------------------------------------------------------------- 字符串值 (REG_SZ) 表现形式为: @=""。 二进制值 (REG_BINARY) 表现形式为: "键值名1"=hex: dword值 (REG_DWORD) 表现形式为: "键值名2"=dword:00000000 多字符串值 (REG_MULTI_SZ) 表现形式为: "键值名3"=hex(7):00,00 可扩充字符串值 (REG_EXPAND_SZ) 表现形式为: "键值名4"=hex(2):00,00 -------------------------------------------------------------------------------------------------------------------------- 以上,是键值项在REG文件中的表现形式,也就是键值项在REG文件中的写法。认真地分析一下表现形式中等号“=”的左边、右边的情形,就可以发现键值项在REG文件中的写法规律。
(1)从上例中等号“=”左边的键值名称分析。 不难看出,上例中键值项的左边可分两种:默认的、非默认的。在所有的键值项中,除了一个默认键值项外,其余都是非默认键值项。默认键的在注册表中的键值名是“默认”,在脚本文件中用@表示,@ 没有用半角双引号;而非默认的"键值名",用了半角双引号。可见,键值项左边的写法只有两种: @ 或 "键值名" 。
(2)从上例中等号“=”右边的表现形式分析。 在上例中,虽没有给每一个键值项输入键值,但仍可看出每一个键值项右边的表现形式,都由键值符、键值两个部分。由此看来,键值项在REG文件中的表现形式,也是由键值名、键值符、键值三个部分构成。其中“键值符”就是表示注册表中的“键值类型”。具体地说,REG文件中的键值符:“""、hex:、dword:、hex(7):、hex(2):”,分别表示注册表中的键值类型:“字符串值、二进制值、dword值、多字符串值、多字符串值”。因此,键值项在REG文件中的写法为:@或"键值名"=键值符 键值。
(3)从上例中等号“=”右边的键值设置分析。 在上例中,等号“=”右边的键值,因都没有输入键值,在注册表中键值表现都是为空。经反复测试,在注册表中都表现键值为空的,dword值的有效写法是:@或"键值名"=dword:00000000;其它的有效写法是:@或"键值名"=键值符。
(4)从上例中等号“=”右边的键值种类分析。 键值也可分字符串、dword数值、其它数值三种。"字符串"要用半角双引号。如字符串中包含路径分隔符,分隔符用双斜杠\\。dword数值和其它数值不需要用半角双引号。综合上述内容,键值项在REG文件中的写法: 其一,字符串数值: @或"键值名"="字符串" 其二,dword数值: @或"键值名"=dword: 数值 其三,其它数值: @或"键值名"=键值符 数值 说明:①其它数值:指“hex:二进制值数值,hex(7):多字符串值数值,hex(2):多字符串值数值”。 ②当键值dword的数值为00000000时和字符串、其它数值没有输入值时,表示键值为空。
3、键值项、键值REG文件的写法 为了便于记忆和操作,根据上面分析的结果,在脚本文件中编写键值项,还可归纳为以下两种写法。 (1)概括性的写法 @ 或"键值名"=键值符 键值 说明:①@为默认的,"键值名"为非默认的。 ②键值符 键值的写法:"字符串",dword:数值,hex:数值,hex(7):数值,hex(2):数值。 ③当键值dword的数值为00000000时和字符串、其它数值没有输入值时,表示键值为空。 (2)具体性的写法 默认的 REG_SZ 写法为: @="字符串" REG_BINARY 写法为: @=hex:数值 REG_DWORD 写法为: @=dword:数值 REG_MULTI_SZ 写法为: @=hex(7):数值 REG_EXPAND_SZ 写法为: @=hex(2):数值 非默认的 REG_SZ 写法为: "键值名"="字符串" REG_BINARY 写法为: "键值名"=hex:数值 REG_DWORD 写法为: "键值名"=dword:数值 REG_MULTI_SZ 写法为: "键值名"=hex(7):数值 REG_EXPAND_SZ 写法为: "键值名"=hex(2):数值 说明:当键值dword的数值为00000000时和字符串、其它数值没有输入值时,表示键值为空
二、制作、运行REG文件的方法
修改注册表的方法很多,最常见的有:一是手动直接修改:就是在注册表中,用手工直接修改注册表的内容。二是导入导出修改:是将要修改的内容导出后`进行修改,修改后保存再导入。三是制定脚本文件修改:即按照注册表脚本文件的格式和要求,制定REG文件再导入。本文介绍就是第三种方法。
1、建立脚本文件 ①新建一个文本文档,将其扩展名.txt改为.reg; ②再用记事本打开.reg文件就可进行编辑了,编辑好后保存。 2、编辑脚本文件 (1)文件的基本格式 ---------------------------------------------------------------------------------------------- 注册表编辑器版本
[路径] @=键值符 键值 "键值名"=键值符 键值 ---------------------------------------------------------------------------------------------- (2)脚本文件的范例 ---------------------------------------------------------------------------------------------- Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\m3ile] "FriendlyTypeName"="@C:\\WINDOWS\\inf\\unregmp2.exe,-9926" "EditFlags"=hex:00,00,01,00 "PreferExecuteOnMismatch"=dword:00000001 @="M3U 文件" ---------------------------------------------------------------------------------------------- (3)编辑脚本的说明 ①第一行是注册表编辑器版本,凡是XP用户必须输入“Windows Registry Editor Version 5.00”。 ②第二行为空行。 ③第三行是导入内容到注册中的路径、位置,如,[HKEY_CLASSES_ROOT\m3ile]。 ④第四行及其以后的,均为键值项的内容,是编辑的重点、关键。 ⑤在键值项的内容中,可分为默认的:如,@="M3U 文件"。剩下的为非默认的内容。 ⑥在键值项为非默认的内容中有三种: 一是字符串值: 如,"M3U 文件"、"@C:\\WINDOWS\\inf\\unregmp2.exe,-9926"; 二是二进制值: 如,hex:00,00,01,00; 三是dword值: 如,dword:00000001。
3、运行脚本文件 双击REG脚本文件图标,不论注册表编辑器是否打开,REG脚本文件内容自动导入到注册表。
|