2015-01-12 20:23 1161人阅读 评论(1) 收藏 举报
 分类:
玩转Windows应用层编程(12) 

版权声明:本文为博主原创文章,未经博主允许不得转载。

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注册表文件的更多相关文章

  1. PE下挂载注册表文件然后清除系统托盘空白图标缓存

    清除了右下角通知栏图标缓存TrayNotify(否则会出现一堆空白图标)清除缓存批处理脚本.bat如何在PE系统环境下清除宿主系统的托盘图标缓存? 清除了右下角通知栏图标缓存TrayNotify(否则 ...

  2. Windows常用注册表文件

    内容转载自我的博客 目录 1. 删除Visual Studio的右键菜单 2. 恢复Visual Studio的右键菜单 3. 右键菜单添加功能 4. USB3.0连接安卓手机刷机出现问题 1. 删除 ...

  3. WINDOWS NT操作系统的注册表文件

    WINDOWS NT操作系统的注册表文件 WINDOWS NT注册表文件分为系统文件和用户文件两类. 系统设置和缺少用户 配置数据存放在系统C:\Windows\System32\config文件夹下 ...

  4. Win7 winsock 注册表文件

    http://files.cnblogs.com/xsmhero/Winsock_Win7x64.rar

  5. 验证reg注册表的操作

    // wRegKeyclass wRegKey{ // Operationspublic: BOOL Create(HKEY hKeyParent, LPCTSTR lpszKeyName , LPT ...

  6. 10#Windows注册表的那些事儿

    引言 用了多年的Windows系统,其实并没有对Windows系统进行过深入的了解,也正是由于Windows系统不用深入了解就可以简单上手所以才有这么多人去使用.笔者是做软件开发的,使用的基本都是Wi ...

  7. 注册表REG文件编写大全

    Windows 中的注册表文件( system.dat 和 user.dat )是 Windows 的核心数据库,因此,对 Windows 来说是非常重要的. 通过修改注册表文件中的数据,可以达到优化 ...

  8. 编写注册表.reg文件

    Windows 中的注册表文件( system.dat 和 user.dat )是 Windows 的核心数据库,因此,对 Windows 来说是非常重要的. 通过修改注册表文件中的数据,可以达到优化 ...

  9. Reg 命令修改注册表

    首先要说明:编辑注册表不当可能会严重损坏您的系统.在更改注册表之前,应备份计算机上任何有价值的数据 只有在别无选择的情况下,才直接编辑注册表.注册表编辑器会忽略标准的安全措施,从而使得这些设置会降低性 ...

随机推荐

  1. 在linux下运行mongodb

    一>下载 1.去mongodb官网下拉框中找到 linux =>RHEL 6 => Package Manager: 2.Instructions for installing wi ...

  2. GDB 学习

    通常使用gdb在Linux下调试C/C++程序,编译的时候加上-g选项(gcc -g ......).下面总结的是我自己经常使用(当然也有一些用的比较少)的gdb命令. (1)开始及退出 开始:gdb ...

  3. Solr搜索引擎 — 通过mysql配置数据源

    一,准备数据库数据表结构 CREATE TABLE `app` ( `id` int(11) NOT NULL AUTO_INCREMENT, `app_name` varchar(255) NOT ...

  4. 17Oracle Database 维护

    Oracle Database 维护 备份 还原

  5. Invalid character found in the request target.The valid characters are defined in RFC 7230 and RFC3986

    Tomcat在 7.0.73, 8.0.39, 8.5.7 版本后,添加了对于http头的验证. 具体来说,就是添加了些规则去限制HTTP头的规范性 参考这里 具体来说: org.apache.tom ...

  6. 14: curl#6 - "Could not resolve host: mirrorlist.centos.org; 未知的错误"

    14: curl#6 - "Could not resolve host: mirrorlist.centos.org; 未知的错误" One of the configured ...

  7. 在TWaver的Tree节点上画线

    论坛上有同学提出如何在tree上画引导线,之前我们Flex已经实现此功能,现在最新版的HTML5也将添加此功能.先看看效果:详细的使用方法可以参考我们开发手册中可视化视图组件#Tree引导线一章,下面 ...

  8. 【解题报告】洛谷 P2571 [SCOI2010]传送带

    [解题报告]洛谷 P2571 [SCOI2010]传送带今天无聊,很久没有做过题目了,但是又不想做什么太难的题目,所以就用洛谷随机跳题,跳到了一道题目,感觉好像不是太难. [CSDN链接](https ...

  9. 03匿名内部类、eclipse快捷键、String相关知识

    03匿名内部类.eclipse快捷键.String相关知识-2018.7.11 1.匿名内部类(只针对重写一个方法时候使用,不能向下转型,因为没有子类类名) new Inter(){ public v ...

  10. 电子笔记本的思考(1)(ver0.2)

    章节:电子笔记本的思考(1)   陶哲轩在<解题·成长·快乐——陶哲轩教你学数学>中着重强调,用纸笔来“缓存”思维对于数学解题的重要性: 用选定的符号表达你所知道的信息,并画一个示意图.把 ...