1.1 带你认识注册表
1.1.1 什么是注册表
对Windows操作系统稍有了解的用户都听说过注册表,听说过修改注册表的神奇功用,你知道什么是注册表吗?
注册表并不神秘,简单地说,它是用来对Windows操作系统进行配置的一个工具。通过它,可以对操作系统及应用软件进行优化,可以自己设置Windows的使用权限,可以解决硬件及网络设置不当带来的故障,甚至可以改造自己的操作系统。
1.1.2 为什么需要注册表
在Windows 3.X时代,主要通过Win.ini及System.ini文件对Windows系统进行配置,但Win.ini及System.ini文件存在着安全性不高、大小受限制等问题,为了解决这一问题,Microsoft公司(Windows系统的开发者)在Windows 98以后的版本中引入了注册表这一概念,以便更好的对Windows系统进行配置,这就是为什么我们要使用注册表。
1.1.3 注册表的作用和功能
注册表是保存程序所需要的信息,当程序需要这些信息时,就从注册表里读出。因此,注册表最基本的功能就是保存信息。
当了解了注册表的主要功能——保存信息后,再来了解其保存信息所能发挥的作用!
(1)记录安装信息;
(2)设置硬件;
(3)定制Windows以及应用软件。
1.1.4 注册表的逻辑结构体系
注册表逻辑结构中最基本的是主键、子键、键值项以及键值。它们是按照分级的方式来管理和组织的。首先是最底层的根键,每个根键下有若干个子键,每个子键下又可以有若干(一个或多个)子键,子键下可以有一个或多个键值项和键值(如图所示)。
根键:注册表中最底层的键,类似于磁盘上的根目录。
子键:子键位于根键下,又可以嵌套于其他子键中。在注册表的六大根键中,有若干的子键,而每个子键中又可以嵌套成千上万的子键。
键值项与键值:在每个根键和子键下,可以有若干键值项和键值,这种结构类似于磁盘上根目录和子目录里的文件和文件内容。
1.1.5 认识注册表的六大根键
Windows 9X注册表逻辑结构中包含六个根键,每个根键包含着分类不同的信息!在Windows NT/2000/XP中,如果用Windows自带的编辑器打开的时候,只能看到五个,还有一个隐藏的根键:HKEY_PERFOR-MANCE_DATA。
HKEY_CLASS_ROOT
记录Windows操作系统中所有数据文件的格式和关联信息,主要记录不同文件的文件名后缀和与之对应的应用程序。其下子键可分为两类:一类是已经注册的各类文件的扩展名,这类子键前面都有一个“.”;另一类是各类文件类型有关信息。
HKEY_CURRENT_USER
此根键包含了当前登录用户的用户配置文件信息。这些信息保证不同的用户登录计算机时,使用自己的个性化设置,例如自己定义的墙纸、自己的收件箱、自己的安全访问权限等。
HKEY_LOCAL_MACHINE
此根键包含了当前计算机的配置数据,包括所安装的硬件以及软件的设置。这些信息是为所有的用户登录系统服务的。它是整个注册表中最庞大也是最重要的根键!
HKEY_USERS根键
HKEY_USERS根键包括默认用户的信息(Default子键)和所有以前登录用户的信息。
HKEY_CURRENT_CONFIG
此根键实际上是HKDY_LOCAL_MACHINE中的一部分,其中存放的是计算机当前设置,如显示器、打印机等外设的设置信息等。它的子键与HKDY_LOCAL_MACHINE\Config\0001分支下的数据完全一样。
HKEY_DYN_DATA根键
HKEY_DYN_DATA根键中保存每次系统启动时,创建的系统配置和当前性能信息。这个根键只存在于Windows 9x中。
HKEY_PERFORMANCE_DATA根键
在Windows NT/2000/XP注册表中虽然没有HKEY_DYN_DATA键,但是它却隐藏了一个名为“HKEY_PERFORMANCE_DATA”的键。所有系统中的动态信息都是存放在此子键中。系统自带的注册表编辑器无法看到此键,但可以用专门的程序来查看此键,比如使用性能监视器。
1.2 轻松学用注册表编辑器
1.2.1 认识注册表编辑器
使用注册表编辑器——Regedit,可以查看和修改注册表的逻辑结构,学习注册表最主要的也就是掌握和操作它的逻辑结构。
要运行注册表编辑器,只要打开“开始/运行”,在对话框中输入Regedit并确定就可以启动注册表编辑器了。
这个工具在以后会经常用到,总是像这样运行有点麻烦,所以为了方便,你可以在桌面做一个快捷方式。
特别提醒:注册表编辑器是个危险的程序,如果计算机不是一个人使用的话,最好不要将它的快捷方式做到桌面上,防止一些用户运行注册表编辑器后对注册表进行破坏性的修改。
1.2.2 运行注册表编辑器(从Windows 9x到Windows XP)
在Windows 9x里面打开注册表编辑器的方法只有一种,在“开始/运行”中输入Regedit就可以了。
在Windows NT/2000/XP里面有2种方法可以打开注册表编辑器。一种是直接在“开始/运行”中输入Regedit,出现的界面和Windows 9x一样。另外一种是打开有权限限制的注册表编辑器(打开方法:在“开始/运行”中输入Regedt32),后面的文章中将有详细讲述。
特别提示:与此书配套使用的光盘中有多个注册表修改的多媒体演示实例,初学者注意参看。
1.2.3 注册表编辑器的视窗结构
下图显示了注册表编辑器的视窗结构,它具备许多Windows 98一般应用程序的特性:顶部是菜单栏,底部是状态栏(显示当前活动子键的整个注册表路径),以及协助上下左右移动的滚动条。
注册表编辑器视窗分成两格:左边的键格窗口以资源管理器的形式显示注册表数据库的层次,右边的键值窗口显示当前被选中的子键的内容。
每个子键下都包含特殊的键值,出现在右边的键值窗口内(如下图)。每个值都包含有:
(1)数据类型图标。它以不同类型图标的方式显示出该键值的数据类型(如下图所示)。
注册表编辑器的视窗结构
(2)键值项。如上图中所示的“username”,它标识该键值的项目名称。
(3)键值。如上图中的“Solon”,是该键值项的具体的值。
每个子键至少包含一个键值项——默认键值项,如果该键值项的键值为空,它的键值会显示成“(未设置键值)”(如上图所示)。
键值有三种数据类型:字符串、二进制和DWORD。字符串类型(键值窗口中含字母“ab”的小图标,如上图所示)通常用于文本,而二进制及DWORD类型(键值窗口含有1和0的小图标)通常用于数字信息。但是,字符串值也可以包含数字,而且这种情况很常见。
备注:子键名不是注册表独有的,而且同一子键名可能出现在几个不同的地方。因此在本书中描述某一子键时,通常给出完整的位置,如HKEY_CLASSES_ROOT\Folder或HKEY_LOCAL_ MACHINE\Software\Classes\Folder。
1.2.4 怎样修改注册表键值
对注册表进行的大部分修改和编辑都是对已有键值项或键值进行的修改。注册表编辑器使这项工作变得非常简单。基本方法是在左边的键格窗口中搜索,直到找出要修改的键值所属的键。双击某个键值项会弹出修改对话框,根据所选键值项的数据类型,会弹出“编辑字符串值”、“编辑二进制值”和“编辑DWORD值(Wind-ows NT/2000下为“编辑双字节值”)”等各类键值的对话框,在对话框中编辑所需要的内容,最后单击“确定”即可。
1.2.5 如何创建新的子键和键值项
创建子键的方法很简单,首先在左边的键格窗口中右击相应的子键;然后再从弹出的快捷菜单中选择“新建/主键”(如下图),并在“新数值 #1”(Windows NT/2000/XP下为“新项 #1”)字样上键入子键名即可。
创建新的键值项与创建子键差不多一样容易,只是事先必须多了解一些信息。除键值项名称外,还必须确定该键值项应该属什么类型(字符串、二进制或DWORD)以及它必须包含什么数据。
给注册表添加子键和键值项,不像修改已有子键和键值那样常见,但偶尔还是要进行这类操作的。有时是根据自己的意图添加,不影响Windows系统。不过要注意无论添加何种键和值,都必须满足Windows 以及应用程序的格式要求。同样,在添加新条目之前,要备份注册表,以便在出现问题后恢复到正常时的状态。
1.2.6 如何删除子键和键值项
注册表编辑器可以删除任何子键(不包括六个根键,实际上根键是无法删除的)或任何类型的键值项。只要选择一个对象(一个子键或者键值项,如果是键值项,可以一次选中多个),将其右击,然后选择“删除”(也可以用Delete键的办法),如图,在确认对话框中必须选择“是”,才能完成删除,因此如果是意外地或匆忙之中选择了“删除”,选择“否”,退出这个对话框就行了。
