深度技术Win7系统电脑如何自己编写一个注册表文档
作者:深度系统 文章来源:www.sdgho.com 发布时间:2017-07-27 10:55
   在使用Win7系统中,混迹注册表之家各位网友肯定要经常修改注册表。修改现有的值的数据还好,一旦涉及到删除或添加键、值的数据,修改键,不做备份,“日后再说”肯定会蒙圈。注册表文档(Registration Entries)不仅可以将添加或删除的键、值进行快速还原,还方便分享你的注册表键值的设置。
首先我们来先了解注册表文档的语法。
REGEDIT VERSION
(空一行)
[键1]
“值1”=”值类型1:数据1”
“值2”=”值类型2:数据2”
……
(空一行)
[键2]
“值3”=”值类型3:数据3”
......
语法项目详细说明:
REGEDIT VERSION:指注册表编辑器版本。Windows 2000之前的版本此处写REGEDIT4,Windows 2000之后此处写Windows Registry Editor Version 5.00。当然,你想偷懒的话也可以直接写REGEDIT4,这么干是可以的。我把它称之为“版本描述”。
空行:这是最简单的、最基本的、不可或缺的语法元素之一。添加于版本描述语句之后、键路径之前。
键和值就不用多说了,键(key)就是指注册表里的那些“文件夹”,值(value)就是指右边的那些“文件”,大家都应该清楚。
值由两部分组成:值名(value name)和值数据(value data),我平时都是习惯简称“值”和“数据”,反正是否标准就不知道了。在上述的语法描述中我也使用的是“值”和“数据”。
值类型是指值的数据类型,是值的基本属性。
例如这个最基本的、不可或缺的注册表元素——键的默认值(Default)。
它的数据是string(字符串)类型(REG_SZ)的。默认值在注册表文档中用@(不能加引号)表示。
类型在编写注册表文档时很重要。下面我们来看一下各种值对应的类型名:
需要特殊注意的是String(字符串)值:在注册表中是REG_SZ,在注册表文档中为字符串类型的值的数据赋值时不写类型和冒号,直接写字符串数据;
DWord值:在注册表中是REG_DWORD,在注册表文档中用dword表示;
Qword值:在注册表中是REG_QWORD,在注册表文档中用hex(b)表示;
Binary(二进制)值:在注册表中是REG_BINARY,在注册表文档中用hex表示;
Expandable String(可扩展的字符串)值:在注册表中是REG_EXPAND_SZ,在注册表文档中用hex(2)表示;
Multi-String(多值字符串集)值:在注册表中是REG_MULTI_SZ,在注册表文档中用hex(7)表示;
比如说下面这个注册表文档,打开编辑界面是这样的:
它所对应的注册表内容是这样的:
注册表编辑器的版本描述语句与第一个键之间空一行;后一个键的相关语句和前一个键的相关语句之间要空一行。
键的路径要表示为绝对路径,即路径分隔符要使用反斜杠(\);同一键下的不同项目另起一行直接写,不留空行。
为REG_SZ类型的值的数据赋值时引号不可以省略,其他类型的值在赋值时引号可以省略。欲将某值的数据设置为空(或“0”),可以使用"值名"=""。
下面进入正题
一、新建键、值
例如在我想在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Wbem\xml\Encoders\键下新建一个名为newTestKey的子键(subkey),然后新建几个测试值,那就新建一个文本文档,扩展名改为*.reg(编辑完之后再改也可以),右键菜单,编辑。写上下面的语句:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Wbem\xml\Encoders\newTestKey]
"newDword2"=dword:2
"newDword"=dword:00000001
"newString"="ITHome,Excited!"
保存并双击导入。
执行结果:
默认值是不可或缺的,它是键存在的基础,所以在新建键时,即便不写@="",也会自动创建默认值。
一般地,执行在同一键下新建值的语句时没有先后顺序的讲究,但是当出现的值的名称和类型都相同、数据不同时,这就相当于修改值的数据了,注册表中值的数据以注册表文档最后的值的数据为准。
二、删除键、值
删除键:在键前添加一个负号(-),形如
[-键]
删除值:在赋值号(=)后不写引号、值类型,直接写一个负号(-),形如
Value#1=-
如果我想删除前面添加的键及其所有值,编辑注册表文档,改为
Windows Registry Editor Version 5.00
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Wbem\xml\Encoders\newTestKey]
"newDword2"=dword:2
"newDword"=dword:00000001
"newString"="ITHome,Excited!"
即可。
三、修改键、值:
修改键:这个比较麻烦,需要先删除该键,然后再新建键(注意备份键下的值),再将值写在新键下。
修改值名:这个也比较麻烦,需要先删除该值,然后再新建值(注意备份值的数据)。
我觉得除非你是想直接给别人你的注册表设置,否则还是直接在注册表编辑器里改吧。
修改值数据:直接用
“值”=”值类型:新数据”
的语句来改写。所以,你可以用
@=”新数据”
来修改默认值的数据。
总之,利用注册表文档可以很方便地批量创建键、值,将注册表文档化可以方便创建备份快速、安全地恢复之前的注册表设置。但是如果你想分享新建、修改过值的数据的注册表的话,还是右键导出算了。