初谈制作注册表REG脚本文件(下)
2012-01-05 13:26
232 查看
四、如何修改注册表REG脚本文件
用REG文件修改注册表,应该对键值项有所了解,尤其是默认键值项的相关知识,为此下面先作个简单的介绍,供参考!
①在注册中,对每一个主键或子键,系统只允许一个默认键值项,不允许多于一个或没有默认键值项。因此,在创建新键或没有默认键值项时,系统将自动对每一个键给出一个默认键值项,它的键值名为(默认),键值类型是字符串,键值“数值未设置”状态。根据这一条分析,如删除默认键值项,系统给你还原一个“数值未设置”的默认键值项。因此,我们常用“@=-”还原默认键值项。
②默认键值项的键值在注册中表现有三种状态:数值未设置、已输入数值、没输入数值(即键值为空)。
在REG文件中,“数值未设置”状态的表现是不显示,只有在输入了数值或键值为空时,默认键值项才能显示在REG文件上。
③在REG文件中,默认键值项的表现也有三种命令,@=键值符:表示键值为空,@=键值符 键值:表示输入了数值,@=-:表示删除默认键值项。
这三种命令,在“不允许多于一个或没有默认键值项”的原则下,都能在数值未设置的默认键值项中得到有效的执行。
1、修改键名
用REG文件修改注册表的键名,由于操作没有手工直接修改方便,在这就不作详细介绍。其方法与下面的“移动内容”类似,删除一个原键名同时创建一个新键名。除删除路径的原键名外,再用记事本菜单编辑中的“替换”,修改其它路径中的原键名。
写法如下:
-------------------------------------------------------------
注册表版本
[-路径\原键名]
[路径\新键名]
键值项内容
[路径\新键名\子键名]
键值项内容
-------------------------------------------------------------
以上,[-路径\原键名]表示删除原键名,“新键名”是修改后的键名。
2、修改键值名
修改键值名,如在导出的REG文件中修改,只将“原键值名”改为“新键值名”,在执行中却是创建了一“新键值名”,“原键值名”仍然存在。因此,必须删除这个“原键值名”。
其写法:
将原键值名改为新键值名=键值符 键值
原键值名=-
(1)修改默认键值名
对默认键值项的键值名进行修改,实际上是创建一个与默认的键值类型、键值相同的非默认键值项,原来的默认键值项仍然存在。
要使原默认键值项不存在的方法有两种:
①删除原默认键值项。用@=-删除原默认的,让系统还原一个“数值未设置”的默认键值项。
其写法:将@改为"新键值名"=键值符 键值
@=-
②创建一个默认键值项。用这个新的默认键值项修改原来的默认键值项。
其写法:将@改为"新键值名"=键值符 键值
@=键值符 键值
从运行的结果来看,修改默认键值名,是将默认键值名改为非默认键值名,也就是将默认键值项改为非默认键值项,同时添加一个新的默认键值项。
例1,在 HKEY_CLASSES_ROOT\*\shell\NewWindow 下,将默认键值名改为"新名1";
在 HKEY_CLASSES_ROOT\*\shell\NewWindow\command 下,将默认键值名改为"新名2"。
第一步,将NewWindow导出保存,用记事本打开另存一份副本修改;
![](http://img460.ph.126.net/ZF5oAtXVQOLImIvkDqZpXg==/1022035640437523560.jpg)
第二步,将第一条路径下的默认键值名改为"新名1",在下一行中输入@=-;
将第二条路径下的默认键值名改为"新名2",在下一行中输入@="explorer.exe %1",保存。
![](http://img768.ph.126.net/k_ockZn5TY_gYRrkOiyJew==/1260726420688284698.jpg)
运行效果:
![](http://img.ph.126.net/qeMfiT6Xf8fijazY8T5JaQ==/1518838974331237183.jpg)
![](http://img692.ph.126.net/NpgPcn6bzxrTswWxkFhrEA==/2886525886168896100.jpg)
(2)修改非默认键值名
①改为默认键值名
将非默认键值名改为默认键值名,实际上是创建了一个默认键值项,在运行中它将对原默认键值项进行修改。同时原来的非默认键值项仍然存在。
其写法:将"原键值名"改为@=键值符 键值
"原键值名"=-。
②改为非默认键值名
将非默认键值名改为非默认键值名,注意改后的新键值名,不能与在同一路径下的其它键值名相同。
其写法:将"原键值名"改为"新键值名"=键值符 键值
"原键值名"=-。
例2,对例1修改后的结果,再作修改如下:
在 HKEY_CLASSES_ROOT\*\shell\NewWindow 下,将非默认键值名"新名1"改为默认的;
在 HKEY_CLASSES_ROOT\*\shell\NewWindow\command 下,将非默认键值名"新名2"改为"开心"。
第一步,将NewWindow导出保存,用记事本打开另存一份副本修改;
![](http://img465.ph.126.net/5BzfpaAveRmHHPtqU9JEhA==/1560215795908331659.jpg)
第二步,将第一条路径下的键值名"新名1"改为@,在下一行中输入"新名1"=-;
将第二条路径下的默认键值名"新名2"改为"开心",在下一行中输入"新名2"=-,保存。
![](http://img852.ph.126.net/3leuWvwEUImBEF1l2gYQGA==/607422999743055495.jpg)
运行效果:
![](http://img618.ph.126.net/OBR8vhRcL_Qi2Y_uLGLe5Q==/1695886734683808299.jpg)
![](http://img837.ph.126.net/8aRGNkeV0Wl-QQUAVl9Zhg==/1772166453372120744.jpg)
3、修改键值类型
在REG文件中修改键值符,即是在注册表中修改键值类型。必须指出,修改键值类型,应该修改对应的键值或键值为空,否则运行无效。
其写法:@或"键值名"=键值符 键值。
键值符:""、hex:、dword:、hex(7):、hex(2): 。
例3,在 HKEY_CLASSES_ROOT\*\shell\NewWindow\command 下
将默认键值项的键值类型改为"字符串值",键值为:explorer.exe %1;
将非默认键值项"开心"的键值类型改为“二进制值”,键值为:01,00,00,00;
第一步,将command导出保存,用记事本打开另存一份副本修改;
![](http://img74.ph.126.net/pbYYrgHweqkHUmPI0lFZHQ==/1851542396804708401.jpg)
第二步,将默认的键值类型hex:改为"",输入键值:explorer.exe %1;
将非默认"开心"的键值类型、键值dword:00000000改为hex:01,00,00,00。
![](http://img764.ph.126.net/uAUxbsIF20rzRPY0WGN4YA==/2977723778622717227.jpg)
运行效果:
![](http://img611.ph.126.net/tFN3RGJmV5Bfwlxj9vKEmw==/1922192615959068093.jpg)
4、修改键值
其写法:@或"键值名"=键值符 键值。
例4,将下面注册表中的键值作如下修改:
默认的键值改为:explorer.exe %1, 键值名1的键值改为:01,00,00,00,
键值名2的键值改为:01000000, 键值名3、4的键值:为空。
![](http://img170.ph.126.net/NHxk2Oq7hBTc8n1V3LbOwA==/2287547135728866402.jpg)
第一步,将command导出保存,用记事本打开另存一份副本修改;
![](http://img852.ph.126.net/oy7uu3wVphb95HT4obmZuQ==/2729744324140982629.jpg)
第二步,默认的: "字符串值" 改为 "explorer.exe %1"
"键值名1":00,00,00,01 改为 01,00,00,00
"键值名2":00000001 改为 01000000
"键值名3":清除 31,00,32,00,33,00,00,00,00,00
"键值名4":清除 34,00,35,00,36,00,00,00
![](http://img104.ph.126.net/meRqSNxZfxQXnR69QNu4tQ==/2027464257248568339.jpg)
运行效果:
![](http://img855.ph.126.net/nwdnaBeZCTJYcs7cWzKr0Q==/640637046994911114.jpg)
5、互换键值名
分析:在同一路径下互换键值名,例如将"键值名1"改为"键值名2",在执行时是键值名项2的键值类型、键值变成了键值项1的键值类型、键值,键值项1的"键值名1"并没有发生改变,键值项1的键值类型、键值还是原来的。如同时将"键值名2"改为"键值名1",同样执行的是键值项1的键值类型、键值变成了键值项2的键值类型、键值。可见,两个键值名互换,执行的是两个键值项的键值类型、键值进行了对调,两个键值名并没有发生改变。两个以上的键值名也可轮换,其道理类似。
①非默认键值名之间互换
其写法:将"键值名1"改为"键值名2"=键值符1 键值1
将"键值名2"改为"键值名1"=键值符2 键值2。
②默认与非默认键值名之间互换
其写法:将@改为"键值名"=键值符1 键值1
将"键值名"改为@=键值符2 键值2。
③四个键值项键值名的轮换
例5,在路径 HKEY_CLASSES_ROOT\*\shell\NewWindow\command 下,
将默认的 @改为"键值名1","键值名1"改为"键值名2","键值名2"改为"键值名3","键值名3"改为默认的 @ 。
未改键值名前时的情形:
![](http://img464.ph.126.net/axhkt_ALfoHtP0p5aNhXZQ==/1584141168928656522.jpg)
第一步,将command键导出保存为“脚本.reg”文件,用记事本打开另存一份副本修改;
![](http://img165.ph.126.net/FAml76e6Ih9pYV2OZzHWfQ==/1497446876102226782.jpg)
第二步,在打开副本中,按照上面的要求进行修改,修改后保存。
![](http://img238.ph.126.net/D0adTYnWuOYLI_H3QufKgg==/2226467065783145751.jpg)
运行效果:
![](http://img534.ph.126.net/aqmMZwlnb3JuaH_q7rP7FA==/1324339765424762145.jpg)
6、移动内容
移动内容,是指将注册表中的某键及其以下内容移动到指定的路径位置。在编辑REG文件时,移动的方法是:删除原路径位置中的某键及其以下的内容,同时在指定的路径位置创建某键及其以下内容,这个方法类似于“剪切”与“粘贴”,不过具体的操作没有这么简单。
例6,将 HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\shell\NewWindow 中的 NewWindow 键及其以下内容,
移动到路径 HKEY_CLASSES_ROOT\*\shell 下。
①将 HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\shell\NewWindow 中的 NewWindow 键,
导出保存为“移动.reg”文件,用记事本打开另存一份副本修改;
![](http://img609.ph.126.net/MG8gUTAkq2AXcdVui199IQ==/1897422818008420718.jpg)
②在打开的文件中间添加删除NewWindow 键的原路径:
[-HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\shell\NewWindow]
![](http://img115.ph.126.net/0t6Ez9DJmSsmBVpSWJupcw==/682013868571859278.jpg)
③除了删除NewWindow 键的这条原路径外,用记事本菜单编辑中的“替换”,将所有路径中的
“HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\shell”替换为
“HKEY_CLASSES_ROOT\*\shell”,并保存。下面是替换、保存后的情形:
![](http://img616.ph.126.net/8_ElVdr-Bm2ZU3DL5QDqGw==/1982709735951552539.jpg)
以上,如没有删除NewWindow 键,则是将某键及其以下内容从一个位置复制到另一个位置。
运行效果:
![](http://img610.ph.126.net/Hlo9jybtZLGafgVIFL3-Qg==/1949214213722915726.jpg)
总结:
(1)基本原理
用REG文件修改注册表,对在REG文件的写法和在注册表中的执行,其原理可概括为以下三种命令的写法、四条命令的执行:
①替换、创建命令
[路径\键名]
键值名=键值符 键值
其中,键值名:包括默认的@与非默认的"键值名",即,键值名=@或"键值名"。
键值符:""、hex:、dword:、hex(7): 、hex(2): 。
对REG文件中的键名或键值名,在注册表中执行时有两种情况:
其一,如与注册表中的键名或键值名相同,则在注册表中执行“替换”命令,也就是用REG文件中给出的“键值类型、键值”来替换注册表中的“键值类型、键值”。
其二,如与注册表中的键名或键值名不同,则在注册表中执行“创建”命令,其中[路径\键名]为创建新的“键名”,键值名=键值符 键值为创建新的“键值名”。
②删除命令
[-路径\键名]
键值名=-
对REG文件中的键名或键值名,如与注册表中的键名或键值名相同,则在注册表中执行“删除”命令,删除注册表中的“键名”或“键值名”及其以下内容,也就是说删除“键名”及其以下内容或“键值项”;如与注册表中的键名或键值名不同,则在注册表中不执行命令。
③清除命令
[路径\键名]
键值名=键值符
当键值符为dword:时,应写成:dword:00000000。
对REG文件中的键名或键值名,如与注册表中的键名或键值名相同,则在注册表中执行“清除”命令,即清除“键值”使键值为空;如与注册表中的键名或键值名不同,则在注册表中不执行命令。
以上三种命令的写法,在注册表中四条命令的执行,还可概括为:
REG文件与注册表中的键名或键值名,如相同,则执行“替换、删除、清除”命令;如不同,则执行“创建”命令。其它为不执行命令。
④相同键值名的执行。如运行的REG文件中有多个相同的键值名,在注册表中执行的是相同键值名中的最下面一个,如下面执行的是:“@或"键值名"=键值符”。
@或"键值名"=-
@或"键值名"=键值符 键值
@或"键值名"=键值符
(2)几点体会
①用REG文件修改注册表,能解决手工无法修改的问题。如修改默认键值项的键值名、键值类型。
②用REG文件修改注册表,能多线、多点进行同时修改。所谓多线、多点,也就是在多条不同路径下,对多个键值名、键值类型、键值的点进行修改,同时对这些修改都可以放在一个REG文件中一并运行。
③在注册表中手工修改的键
用REG文件修改注册表,应该对键值项有所了解,尤其是默认键值项的相关知识,为此下面先作个简单的介绍,供参考!
①在注册中,对每一个主键或子键,系统只允许一个默认键值项,不允许多于一个或没有默认键值项。因此,在创建新键或没有默认键值项时,系统将自动对每一个键给出一个默认键值项,它的键值名为(默认),键值类型是字符串,键值“数值未设置”状态。根据这一条分析,如删除默认键值项,系统给你还原一个“数值未设置”的默认键值项。因此,我们常用“@=-”还原默认键值项。
②默认键值项的键值在注册中表现有三种状态:数值未设置、已输入数值、没输入数值(即键值为空)。
在REG文件中,“数值未设置”状态的表现是不显示,只有在输入了数值或键值为空时,默认键值项才能显示在REG文件上。
③在REG文件中,默认键值项的表现也有三种命令,@=键值符:表示键值为空,@=键值符 键值:表示输入了数值,@=-:表示删除默认键值项。
这三种命令,在“不允许多于一个或没有默认键值项”的原则下,都能在数值未设置的默认键值项中得到有效的执行。
1、修改键名
用REG文件修改注册表的键名,由于操作没有手工直接修改方便,在这就不作详细介绍。其方法与下面的“移动内容”类似,删除一个原键名同时创建一个新键名。除删除路径的原键名外,再用记事本菜单编辑中的“替换”,修改其它路径中的原键名。
写法如下:
-------------------------------------------------------------
注册表版本
[-路径\原键名]
[路径\新键名]
键值项内容
[路径\新键名\子键名]
键值项内容
-------------------------------------------------------------
以上,[-路径\原键名]表示删除原键名,“新键名”是修改后的键名。
2、修改键值名
修改键值名,如在导出的REG文件中修改,只将“原键值名”改为“新键值名”,在执行中却是创建了一“新键值名”,“原键值名”仍然存在。因此,必须删除这个“原键值名”。
其写法:
将原键值名改为新键值名=键值符 键值
原键值名=-
(1)修改默认键值名
对默认键值项的键值名进行修改,实际上是创建一个与默认的键值类型、键值相同的非默认键值项,原来的默认键值项仍然存在。
要使原默认键值项不存在的方法有两种:
①删除原默认键值项。用@=-删除原默认的,让系统还原一个“数值未设置”的默认键值项。
其写法:将@改为"新键值名"=键值符 键值
@=-
②创建一个默认键值项。用这个新的默认键值项修改原来的默认键值项。
其写法:将@改为"新键值名"=键值符 键值
@=键值符 键值
从运行的结果来看,修改默认键值名,是将默认键值名改为非默认键值名,也就是将默认键值项改为非默认键值项,同时添加一个新的默认键值项。
例1,在 HKEY_CLASSES_ROOT\*\shell\NewWindow 下,将默认键值名改为"新名1";
在 HKEY_CLASSES_ROOT\*\shell\NewWindow\command 下,将默认键值名改为"新名2"。
第一步,将NewWindow导出保存,用记事本打开另存一份副本修改;
![](http://img460.ph.126.net/ZF5oAtXVQOLImIvkDqZpXg==/1022035640437523560.jpg)
第二步,将第一条路径下的默认键值名改为"新名1",在下一行中输入@=-;
将第二条路径下的默认键值名改为"新名2",在下一行中输入@="explorer.exe %1",保存。
![](http://img768.ph.126.net/k_ockZn5TY_gYRrkOiyJew==/1260726420688284698.jpg)
运行效果:
![](http://img.ph.126.net/qeMfiT6Xf8fijazY8T5JaQ==/1518838974331237183.jpg)
![](http://img692.ph.126.net/NpgPcn6bzxrTswWxkFhrEA==/2886525886168896100.jpg)
(2)修改非默认键值名
①改为默认键值名
将非默认键值名改为默认键值名,实际上是创建了一个默认键值项,在运行中它将对原默认键值项进行修改。同时原来的非默认键值项仍然存在。
其写法:将"原键值名"改为@=键值符 键值
"原键值名"=-。
②改为非默认键值名
将非默认键值名改为非默认键值名,注意改后的新键值名,不能与在同一路径下的其它键值名相同。
其写法:将"原键值名"改为"新键值名"=键值符 键值
"原键值名"=-。
例2,对例1修改后的结果,再作修改如下:
在 HKEY_CLASSES_ROOT\*\shell\NewWindow 下,将非默认键值名"新名1"改为默认的;
在 HKEY_CLASSES_ROOT\*\shell\NewWindow\command 下,将非默认键值名"新名2"改为"开心"。
第一步,将NewWindow导出保存,用记事本打开另存一份副本修改;
![](http://img465.ph.126.net/5BzfpaAveRmHHPtqU9JEhA==/1560215795908331659.jpg)
第二步,将第一条路径下的键值名"新名1"改为@,在下一行中输入"新名1"=-;
将第二条路径下的默认键值名"新名2"改为"开心",在下一行中输入"新名2"=-,保存。
![](http://img852.ph.126.net/3leuWvwEUImBEF1l2gYQGA==/607422999743055495.jpg)
运行效果:
![](http://img618.ph.126.net/OBR8vhRcL_Qi2Y_uLGLe5Q==/1695886734683808299.jpg)
![](http://img837.ph.126.net/8aRGNkeV0Wl-QQUAVl9Zhg==/1772166453372120744.jpg)
3、修改键值类型
在REG文件中修改键值符,即是在注册表中修改键值类型。必须指出,修改键值类型,应该修改对应的键值或键值为空,否则运行无效。
其写法:@或"键值名"=键值符 键值。
键值符:""、hex:、dword:、hex(7):、hex(2): 。
例3,在 HKEY_CLASSES_ROOT\*\shell\NewWindow\command 下
将默认键值项的键值类型改为"字符串值",键值为:explorer.exe %1;
将非默认键值项"开心"的键值类型改为“二进制值”,键值为:01,00,00,00;
第一步,将command导出保存,用记事本打开另存一份副本修改;
![](http://img74.ph.126.net/pbYYrgHweqkHUmPI0lFZHQ==/1851542396804708401.jpg)
第二步,将默认的键值类型hex:改为"",输入键值:explorer.exe %1;
将非默认"开心"的键值类型、键值dword:00000000改为hex:01,00,00,00。
![](http://img764.ph.126.net/uAUxbsIF20rzRPY0WGN4YA==/2977723778622717227.jpg)
运行效果:
![](http://img611.ph.126.net/tFN3RGJmV5Bfwlxj9vKEmw==/1922192615959068093.jpg)
4、修改键值
其写法:@或"键值名"=键值符 键值。
例4,将下面注册表中的键值作如下修改:
默认的键值改为:explorer.exe %1, 键值名1的键值改为:01,00,00,00,
键值名2的键值改为:01000000, 键值名3、4的键值:为空。
![](http://img170.ph.126.net/NHxk2Oq7hBTc8n1V3LbOwA==/2287547135728866402.jpg)
第一步,将command导出保存,用记事本打开另存一份副本修改;
![](http://img852.ph.126.net/oy7uu3wVphb95HT4obmZuQ==/2729744324140982629.jpg)
第二步,默认的: "字符串值" 改为 "explorer.exe %1"
"键值名1":00,00,00,01 改为 01,00,00,00
"键值名2":00000001 改为 01000000
"键值名3":清除 31,00,32,00,33,00,00,00,00,00
"键值名4":清除 34,00,35,00,36,00,00,00
![](http://img104.ph.126.net/meRqSNxZfxQXnR69QNu4tQ==/2027464257248568339.jpg)
运行效果:
![](http://img855.ph.126.net/nwdnaBeZCTJYcs7cWzKr0Q==/640637046994911114.jpg)
5、互换键值名
分析:在同一路径下互换键值名,例如将"键值名1"改为"键值名2",在执行时是键值名项2的键值类型、键值变成了键值项1的键值类型、键值,键值项1的"键值名1"并没有发生改变,键值项1的键值类型、键值还是原来的。如同时将"键值名2"改为"键值名1",同样执行的是键值项1的键值类型、键值变成了键值项2的键值类型、键值。可见,两个键值名互换,执行的是两个键值项的键值类型、键值进行了对调,两个键值名并没有发生改变。两个以上的键值名也可轮换,其道理类似。
①非默认键值名之间互换
其写法:将"键值名1"改为"键值名2"=键值符1 键值1
将"键值名2"改为"键值名1"=键值符2 键值2。
②默认与非默认键值名之间互换
其写法:将@改为"键值名"=键值符1 键值1
将"键值名"改为@=键值符2 键值2。
③四个键值项键值名的轮换
例5,在路径 HKEY_CLASSES_ROOT\*\shell\NewWindow\command 下,
将默认的 @改为"键值名1","键值名1"改为"键值名2","键值名2"改为"键值名3","键值名3"改为默认的 @ 。
未改键值名前时的情形:
![](http://img464.ph.126.net/axhkt_ALfoHtP0p5aNhXZQ==/1584141168928656522.jpg)
第一步,将command键导出保存为“脚本.reg”文件,用记事本打开另存一份副本修改;
![](http://img165.ph.126.net/FAml76e6Ih9pYV2OZzHWfQ==/1497446876102226782.jpg)
第二步,在打开副本中,按照上面的要求进行修改,修改后保存。
![](http://img238.ph.126.net/D0adTYnWuOYLI_H3QufKgg==/2226467065783145751.jpg)
运行效果:
![](http://img534.ph.126.net/aqmMZwlnb3JuaH_q7rP7FA==/1324339765424762145.jpg)
6、移动内容
移动内容,是指将注册表中的某键及其以下内容移动到指定的路径位置。在编辑REG文件时,移动的方法是:删除原路径位置中的某键及其以下的内容,同时在指定的路径位置创建某键及其以下内容,这个方法类似于“剪切”与“粘贴”,不过具体的操作没有这么简单。
例6,将 HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\shell\NewWindow 中的 NewWindow 键及其以下内容,
移动到路径 HKEY_CLASSES_ROOT\*\shell 下。
①将 HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\shell\NewWindow 中的 NewWindow 键,
导出保存为“移动.reg”文件,用记事本打开另存一份副本修改;
![](http://img609.ph.126.net/MG8gUTAkq2AXcdVui199IQ==/1897422818008420718.jpg)
②在打开的文件中间添加删除NewWindow 键的原路径:
[-HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\shell\NewWindow]
![](http://img115.ph.126.net/0t6Ez9DJmSsmBVpSWJupcw==/682013868571859278.jpg)
③除了删除NewWindow 键的这条原路径外,用记事本菜单编辑中的“替换”,将所有路径中的
“HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\shell”替换为
“HKEY_CLASSES_ROOT\*\shell”,并保存。下面是替换、保存后的情形:
![](http://img616.ph.126.net/8_ElVdr-Bm2ZU3DL5QDqGw==/1982709735951552539.jpg)
以上,如没有删除NewWindow 键,则是将某键及其以下内容从一个位置复制到另一个位置。
运行效果:
![](http://img610.ph.126.net/Hlo9jybtZLGafgVIFL3-Qg==/1949214213722915726.jpg)
总结:
(1)基本原理
用REG文件修改注册表,对在REG文件的写法和在注册表中的执行,其原理可概括为以下三种命令的写法、四条命令的执行:
①替换、创建命令
[路径\键名]
键值名=键值符 键值
其中,键值名:包括默认的@与非默认的"键值名",即,键值名=@或"键值名"。
键值符:""、hex:、dword:、hex(7): 、hex(2): 。
对REG文件中的键名或键值名,在注册表中执行时有两种情况:
其一,如与注册表中的键名或键值名相同,则在注册表中执行“替换”命令,也就是用REG文件中给出的“键值类型、键值”来替换注册表中的“键值类型、键值”。
其二,如与注册表中的键名或键值名不同,则在注册表中执行“创建”命令,其中[路径\键名]为创建新的“键名”,键值名=键值符 键值为创建新的“键值名”。
②删除命令
[-路径\键名]
键值名=-
对REG文件中的键名或键值名,如与注册表中的键名或键值名相同,则在注册表中执行“删除”命令,删除注册表中的“键名”或“键值名”及其以下内容,也就是说删除“键名”及其以下内容或“键值项”;如与注册表中的键名或键值名不同,则在注册表中不执行命令。
③清除命令
[路径\键名]
键值名=键值符
当键值符为dword:时,应写成:dword:00000000。
对REG文件中的键名或键值名,如与注册表中的键名或键值名相同,则在注册表中执行“清除”命令,即清除“键值”使键值为空;如与注册表中的键名或键值名不同,则在注册表中不执行命令。
以上三种命令的写法,在注册表中四条命令的执行,还可概括为:
REG文件与注册表中的键名或键值名,如相同,则执行“替换、删除、清除”命令;如不同,则执行“创建”命令。其它为不执行命令。
④相同键值名的执行。如运行的REG文件中有多个相同的键值名,在注册表中执行的是相同键值名中的最下面一个,如下面执行的是:“@或"键值名"=键值符”。
@或"键值名"=-
@或"键值名"=键值符 键值
@或"键值名"=键值符
(2)几点体会
①用REG文件修改注册表,能解决手工无法修改的问题。如修改默认键值项的键值名、键值类型。
②用REG文件修改注册表,能多线、多点进行同时修改。所谓多线、多点,也就是在多条不同路径下,对多个键值名、键值类型、键值的点进行修改,同时对这些修改都可以放在一个REG文件中一并运行。
③在注册表中手工修改的键
相关文章推荐
- 初谈制作注册表REG脚本文件(上)
- 初谈制作注册表REG脚本文件(中)
- 如何制作简单的reg(注册表)文件
- 制作REG文件编辑注册表
- 使用注册表脚本文件(REG)添加、修改或删除Windows注册表项和值
- 教你制作一个脚本(批处理)文件,一次安装所有的XP更新程序
- VBS 通过注册表修改ie的安全级别,允许本地文件的脚本运行
- 无法导入reg:指定的文件不是注册脚本——兼了解文本格式问题
- 无法导入reg:指定的文件不是注册脚本——兼了解文本格式问题
- 制作jffs2和ubifs文件系统时用到的mkfs.jffs2和mkfs.ubifs工具制作脚本
- 如何使用.REG文件来操作注册表
- cocos2d-x的lua脚本如何加载Cocostudio制作的UI文件
- reg注册表命令语法(转),制作实用的reg文件
- ATL使用.rgs注册脚本文件操作注册表注册Com组件
- 一个修改注册表,使浏览器默认不直接打开已知后缀的下载文件,而是下载后确认,且单独打开的vbscript脚本
- 制作文件系统时拷贝交叉编译器中的动态库时用到的shell脚本
- beagelboard-xm上dvsdk移植4:sd卡启动脚本以及NFS文件系统的制作和配置
- 通过.reg文件修改注册表
- 用 regedit 命令把注册表 .reg 文件导入注册表- -
- 打开CPC,制作专利申请文件时显示 没有注册类别[异常来自HRESULT:0x80040154(REGDB-E-CLASSNOTREG)]