自己动手写reg注册表文件

版权声明:本文为博主原创文章,未经博主允许不得转载。
REG文件实际上是一种注册表脚本文件,双击REG文件即可将其中的数据导入到注册表中。通过约定的格式,我们可以利用REG文件直接对注册表进行任何修改操作,而且它对注册表的操作可以不受Regedit.exe被禁用的限制,因此功能更为强大、灵活;此外,由于REG文件可以用任何文本编辑器/(如记事本/进行打开、编辑、修改,可以在发生错误的时候,通过改回REG文件中的数据后再导入,实现恢复操作,因此它更方便、安全。
怎么做?
REG文件对于注册表的操作可以归结为以下几种:新建主键、删除主键、新建键值、修改键值、删除键值,我们分别来看一下。以下实际操作以在Windows2000/XP中为例。
1.新建主键
引用内容例如我们想在主键[HKEY_CURRENT_USER/Soft-ware]下新建一个名叫“新建主键名称”的主键。那么,我们可以打开记事本,写入如下内容:
WindowsRegistryEditorVer-sion5.00
[HKEY_CURRENT_USER/Software/新建主键名称]
输入完成后另存为一个形如“*.reg”的文件,再双击将其导入到注册表中,我们可以立杆见影地看到修改后的效果。
2.删除主键
引用内容要用REG文件在注册表中删除一个主键,方法是在[]中的主键路径前面加上一个-符号即可。值得注意的是,删除主键操作将会一并删除该主键下的所有子键及其键值项目。例如要删除我们刚才添加的那个主键,可以在记事本上输入下面的内容:
WindowsRegistryEditorVer-sion5.00
[-HKEY_CURRENT_USER/Software/新建主键名称]
接下来,只要另存为一个*.reg文件,并双击将其导入注册表中即可立即生效。
3.新建键值
引用内容在注册表编辑器右侧的键值项窗口空白处单击右键,选择“新建”菜单项,可以看到这些键值被细分为:字符串值、二进制值、DWORD值等几种类型。
字符串值(REG_SZ),该值一般用来作为文件描述和硬件标志,可以是字母、数字,也可以是汉字,但它是长度固定的文本字符串,最大长度不能超过255个字符。REG文件中一般表现为:“a”=“****”。二进制值(REG_BINARY),一般情况下,大多数硬件组件信息以二进制数据存储,然后通过十六进制的格式显示在注册表编辑器中。该类型值没有长度限制,可以是任意字节长,REG文件中一般表现为:“a”=hex:01,00,00,00。
DWOED值(REG_DWORD),设备驱动程序和服务的许多参数都是此类型,以二进制、十六进制或十进制格式显示在注册表编辑器中。REG文件中一般表现为“a”=dword:00000001。
如果你用的操作系统是Win-dowsXP,那么除了字符串值、二进制值、DWORD值外,你可能还会看到多字符串值、可扩充字符串值两种键值类型,不过这两种基本不用,在这里不做介绍。在上面我们已经了解了常见的键值以及它在REG文件中的表现格式,下面我们就来详细看看如何新建键值。
要新建一个键值项,必须要指明该键值所在的分支,该键值的名称、该键值的类型和该键值的值/(数据/。例如要在分支[HKEY_CUR-RENT_USER/Software]下新建一个名叫“REG文件测试”的主键,并设置默认键值为“test”,并分别添加“字符串”键值项目/(字符串值/、“二进制”键值项目/(二进制值/、“双字节”键值项目/(DWORD值/。你可以这么写:
WindowsRegistryEditorVer-sion5.00
[HKEY_CURRENT_USER/Software/REG文件测试]
@=“test”“字符串”=“CeShi”“双字节”=hex:01,00,00,00“Dword值”=dword:00000001在REG文件中,Dword值用dword表示,二进制值用hex表示,字符串值直接用引号把内容括起来就行。值得注意的是,键值类型如dword、hex等也都必须用小写,此外,如果在创建字符串类型的键值时,如果该字符串中包含路径分隔符,这个路径分隔符必须用双斜杠“//”表示。还有就是,在Reg文件中,默认键值是用@表示的,并且没有引号。
4.修改键值
引用内容修改一个键值项和创建一个新键值的方法是类似的,只要在REG文件中,更改相应数据就可以了。例如我们要将上例中的Dword值改为00000000,我们可以这么写:
WindowsRegistryEditorVer-sion5.00
[HKEY_CURRENT_USER/Software/REG文件测试]
“Dword值”=dword:00000000
在我们执行导入操作之后,新的数据会自动覆盖旧的数据,比如在本例中,会自动用00000000将00000001替换掉。
5.删除键值
引用内容用REG文件删除键值项目也是通过-号实现的,只要把-符号放在键值项目的等号后面就行了。我们要删除图2所示中我们添加的几个键值项目,我们可以这么写:
WindowsRegistryEditorVer-sion5.00
[HKEY_CURRENT_USER/Software/REG文件测试]
@=“test”“字符串”=-“双字节”=-“Dword值”=-注意到等号后面的减号了吧,这就是删除的意思。
如:要删除[HKEY_CURRENT_USER/Software/REG文件测试]下的“test”项,就这样写:
WindowsRegistryEditorVer-sion5.00
[HKEY_CURRENT_USER/Software/REG文件测试]
"test"=-
那么,怎么写.reg文件呢?我们需要一个文本编辑器,用windows的记事本就可以了。单击鼠标右键,选择新建文本文档,然后在生成的文本文件里输入上面规格的内容就可以了,最后,选择另存为,输入你想要的文件名+.reg保存即可。比如你要生成test.reg,输入test.reg保存即可,你可以看到生成了一个带图标的test.reg.双击运行这个test.reg文件就能相应的修改注册表了,系统会提示“是否导入注册表”之类的信息,确定就可以了。OK,我们可以手动写注册表了,是不是感觉很酷?
自己动手写reg注册表文件的更多相关文章
- PE下挂载注册表文件然后清除系统托盘空白图标缓存
清除了右下角通知栏图标缓存TrayNotify(否则会出现一堆空白图标)清除缓存批处理脚本.bat如何在PE系统环境下清除宿主系统的托盘图标缓存? 清除了右下角通知栏图标缓存TrayNotify(否则 ...
- Windows常用注册表文件
内容转载自我的博客 目录 1. 删除Visual Studio的右键菜单 2. 恢复Visual Studio的右键菜单 3. 右键菜单添加功能 4. USB3.0连接安卓手机刷机出现问题 1. 删除 ...
- WINDOWS NT操作系统的注册表文件
WINDOWS NT操作系统的注册表文件 WINDOWS NT注册表文件分为系统文件和用户文件两类. 系统设置和缺少用户 配置数据存放在系统C:\Windows\System32\config文件夹下 ...
- Win7 winsock 注册表文件
http://files.cnblogs.com/xsmhero/Winsock_Win7x64.rar
- 验证reg注册表的操作
// wRegKeyclass wRegKey{ // Operationspublic: BOOL Create(HKEY hKeyParent, LPCTSTR lpszKeyName , LPT ...
- 10#Windows注册表的那些事儿
引言 用了多年的Windows系统,其实并没有对Windows系统进行过深入的了解,也正是由于Windows系统不用深入了解就可以简单上手所以才有这么多人去使用.笔者是做软件开发的,使用的基本都是Wi ...
- 注册表REG文件编写大全
Windows 中的注册表文件( system.dat 和 user.dat )是 Windows 的核心数据库,因此,对 Windows 来说是非常重要的. 通过修改注册表文件中的数据,可以达到优化 ...
- 编写注册表.reg文件
Windows 中的注册表文件( system.dat 和 user.dat )是 Windows 的核心数据库,因此,对 Windows 来说是非常重要的. 通过修改注册表文件中的数据,可以达到优化 ...
- Reg 命令修改注册表
首先要说明:编辑注册表不当可能会严重损坏您的系统.在更改注册表之前,应备份计算机上任何有价值的数据 只有在别无选择的情况下,才直接编辑注册表.注册表编辑器会忽略标准的安全措施,从而使得这些设置会降低性 ...
随机推荐
- 华硕(ASUS)X554LP笔记本在64位win7下无线网络连接问题
还是那台华硕(ASUS)X554LP笔记本,无线网卡为 Qualcomm Atheros AR956x,某天换了个环境,WIFI(此处简称为WIFI网A)就连不上网了.手机.其它笔记本用无线连接都没问 ...
- Protocol(协议)
Protocol(协议) (一) (1)简介 1.Protocol:就一个用途,用来声明一大堆的方法(不能声明成员变量),不能写实现.看起来类似于一个类的接口, 不同的是协议没有父类,也不能定义实例变 ...
- Java中PrintStream(打印输出流)
Java中PrintStream(打印输出流) PrintStream 是打印输出流,它继承于FilterOutputStream. PrintStream 是用来装饰其它输出流.它能为其他输出流 ...
- ubuntu部署java环境
一.安装java sudo add-apt-repository ppa:webupd8team/java sudo apt-get update sudo apt-get install oracl ...
- Application crashes -程序崩溃原因
Typical errors that result in application crashes include: attempting to read or write memory that i ...
- MFC_2.4 组合框和图片控件
组合框和图片控件 1.拖控件 图片属性更改Type 为Bitmap 名字也要改,不能为IDC_STATIC 绑定变量控件,重命名. 2.初始化 // 设置一个定时器,用于更新图片 SetTimer(0 ...
- vs2013打包
C#打包需要这个:InstallShield 2013 Limited Edition for Visual Studio . 下载地址: InstallShield 2013 Limited Ed ...
- C++标准库 vector排序
前天要做一个对C++ STL的vector容器做一个排序操作,之前一直把vector当做一个容量可自动变化的数组,是的,数组,所以打算按照对数组进行排序的方法:用快速排序或是冒泡排序等算法自己写一个排 ...
- Spring框架系列(三)--Bean的作用域和生命周期
Bean的作用域 Spring应用中,对象实例都是在Container中,负责创建.装配.配置和管理生命周期(new到finalize()) Spring Container分为两种: 1.BeanF ...
- PHP 优秀资源汇集(照搬)
文章目录 原文地址: https://shockerli.net/post/php-awesome/ GitHub: https://github.com/shockerli/php-awesome ...