注册表(Registry)原意是登记本。Windows中的一个重要的数据库,用于存储系统和应用程序的设置信息。就像户口本上登记家庭住址和邮编等信 息一样。如果户口登记资料丢失了,那我们在户籍管理系统上就成了不存在的人。Windows也是一样,如果注册表中的环境信息或驱动信息丢失的话,就会造 成Windows的运行错误。
神秘的注册表
注册表是保存所有系统设置数据的存储器。注册表保存了Windows运行所需的各种参数和设置,以及应用程序相关的所有信息。从Windows启动开始,到用户登录、应用程序运行等所有操作都需要以注册表中记录的信息为基础。注册表在Windows操作系统中起着最为核心的作用。
Windows运行中,系统环境会随着应用程序的安装等操作而改变,改变后的环境设置又会保存在注册表中。所以可以通过编辑注册表来改变Windows的环境。但如果注册表出现问题,Windows就不能正常工作了。注册表与系统的关系如图所示:
注册表与系统的关系
注册表中保存着系统设置的相关数据,启动Windows时会从注册表中读入系统设置数据。如果注册表受损, Windows就会发生错误,还有可能造成Windows的崩溃。
每次启动Windows时,电脑会检查系统中安装的设备,并把相关的最新信息记录到注册表中。Windows内核在启动时,从注册表中读入设备驱动程序的信息才能建立Windows的运行环境,并选择合适的.inf文件安装驱动程序。安装的驱动程序会改变注册表中各个设备的环境参数、IRQ、DMA等信息。
操作系统完成启动后,Windows和各种应用程序、服务等都会参照注册表中的信息运行。
安装各种应用程序时,都会在注册表中登记程序运行时所需的信息。在Windows中卸载程序,就会在卸载过程中删除注册表中记录的相关信息。
注册表编辑器与Windows的资源管理器相似,呈树状目录结构。资源管理器中的文件夹的概念到注册表编辑器中叫作“键”。资源管理器最顶层的文件叫作“根目录”,其下一层文件夹叫作“子目录”。相似的注册表编辑器的最顶层叫作“根键”,其下一层叫作“子键”。单击键前面的 可以打开下一层的子键。
注册表编辑器
windows为我们提供了一个注册表编辑器(regedit.exe)的工具,它可以用来查看和维护注册表,注册表编辑器与资源管理器的界面相似,注册表编辑器的左侧是列表框,显示了注册表的结构,右侧是显示键的具体信息。
菜单栏:这里有导入、导出、编辑、查看等操作功能。
树状键:显示了键的结构。
状态栏:显示所选键的路径。
名称:注册表值的名称。与文件名相似,注册表键也有重复的现象,但在同一个注册表键中也不能存在相同名称的注册表值。
类型:注册表键存储数据采用的数据形式。
数据:注册表值的内容,注册表值决定了数据的内容。
默认:所有的注册表键都会有(默认)项目。应用程序会根据注册表键的默认项来访问其他数值。
注册表的结构
它有六个分支(有的是五个):
hkey-classes-root 文件扩展名与应用的关联及ole信息
hkey-current-user 当前登录用户控制面板选项和桌面等的设置,以及映射的网络驱动器
hkey-local-machine 计算机硬件与应用程序信息
hkey-users 所有登录用户的信息
hkey-current-config 计算机硬件配置信息
hkey-dyn-data 即插即用和系统性能的动态信息
打开注册表
注册表不能像其他文本文件一样用记事本打开,必须用注册表编辑器来打开。方法是:单击开始菜单,在搜索中输入“Regedit”再按Enter键,双击搜索出来的Regedit程序,或按Win+R(+R)键调出运行窗口,在运行中输入“Regedit”再按Enter键。
注册表修改方法有:
1. 软件修改(安全)
通过一些专门的修改工具来修改注册表,比如:magicset、tweakui、winhacker等等。其实控制面板就是一个这样的工具,只不过功能简单一些。
2. 间接修改(比较安全)
将要修改的写入一个.reg文件中,然后导入注册表中。这样做的好处是可以避免错误的写入或删除等操作,但是要求用户了解注册表的内部结构和.reg文件的格式。
3. 直接修改(最不安全,但最直接有效)
就是通过注册表编辑器直接的来修改注册表的键值数据项,,但是要求用户有一定的注册表知识,熟悉注册表内部结构而且一定要小心谨慎,否则会把系统弄瘫。
使用示例:
(1)修改键值:开始—运行-输入 regedit –确定,打开注册表编辑器,在左窗格选定你要修改的子键,在右窗格打到要修改的键值项,右击该键值项,按要求修改,修改完毕。
例:以加快开关机修改“HKEY-LOCAL-MACHINE”-“Stem”“CurrentControlSet”-“Control”-将字符串“WaitToKillServceTimeout” 数值数据20000修改为1000。
开始—运行—输入“Regedit”—在打开的注册表编器中后步向下打到“Control”左击打开右窗格,在右窗格打到“WaitToKillServceTimeout”双击打开“编辑字符串”对话框,在“数值数据”框中输入要修改为的数据数值“1000”—确定。
(2)新建子键和键值:右击父键,选“新建→项”,在打开的“新建#1“中输入子键名,确定,右击新建的子键,在右窗格添加新键值项和键值。
例:新建字符串,新建“HKEY-LOCAL-MACHINE”-“Stem”“CurrentControlSet”-“Control”-“HungAppTimeout”的数值数据为“200”。
开始—运行—输入“Regedit”—在打开的注册表编器中后步向下找到“Control”左击打开右窗格,右击右窗格空白处—新建—字符串—在名称中输入名称“HungAppTimeout”,双击该名称打开“编辑字符串”对话框,在“数值数据”框中输入数据数值“200”—确定。
(3)删除子键和键值:开始—运行-输入 regedit –确定,打开注册表编辑器,在左窗格右击你要删除的子键,选“删除”;在右窗格右击你要删除的键值项,选“删除”。
注意:为保险起见,修也注册表前要备分注册表,方法是:在注册表编辑器窗口—文件—导出—选择导出部分还是全部—输入文件名—保存。一旦修改错误 可用“导入”方法恢复。如果修改出问题可以重启电脑,连续按F8键,启动菜单选择最近一次正确配置进入。