注册表基础知识.docx
- 文档编号:22791719
- 上传时间:2023-04-28
- 格式:DOCX
- 页数:13
- 大小:23.57KB
注册表基础知识.docx
《注册表基础知识.docx》由会员分享,可在线阅读,更多相关《注册表基础知识.docx(13页珍藏版)》请在冰豆网上搜索。
注册表基础知识
注册表基础之新手上路
注册表是Windows组成的一个部分,它存放了Windows中的各种配置参数。
Windows的各个功能模块及各种安装的应用程序。
在Windows功能和应用软件被执行前,首先是从注册表中取出参数,根据这些参数来调整自己的运行。
从注册表的功能可以看出,注册表是隐藏在操作系统内部的一个信息库,如果你想自已定制一个有个性的Windows,想更好地保护自己的系统不会被其它用户随意修改,那么你就需要了解注册表,而本软件--微晓注册表修改及优化大师则无疑让你能轻松定制Windows。
下面来谈一下注册表。
第一节注册表的背景知识
第二节注册表的组成
第三节注册表在Windows中的地位
第四节注册表重要表项简单剖析
第五节注册表参数
第六节注册表编辑器的使用
第七节更新注册表,使设置生效
第一节
注册表的背景知识
注册表的英文名为Registry,是登记、注册的意思,不要以为它是Windows里的一个表格,从逻辑结构上看,它是一个树形结构的数据库,在物理存储上,注册表对应于Windows95/98/ME下的system.dat和user.dat文件,或者是WindowsNT/2000/XP下的一组注册表文件及其日志文件。
Windows95/98/Me/NT/2000可分为两类,一类是Windows95/98/Me,侧重于个人消费类型操作系统,追求的是对新硬件的支持,以及系统的方便易用性,而另一类WindowsNT/2000则侧重于商业应用,所以追求的是系统的稳健性和拥有的功能(新的操作系统XP也是NT系统结构)。
这两类Windows应该说差别比较大,使用的操作系统核心也不同,然而这些系统的注册表之间的差别,却远小于使用的技术、代码的差别,因为注册表是操作系统、应用程序获得和存放配置参数的地方,可以看作是操作系统的参数存储仓库,是一个逻辑结构,而这个逻辑结构的实现,不管物理上是使用16位代码,还是32位代码都可以实现。
所以它们的注册表之间的差别不大。
对于Windows95/98/Me,可以说95的注册表是98注册表的子集(子集的意思是Windows95注册表中的内容,在Windows98中都有,而Windows98注册表中的内容,在Windows95中不一定有),98又是Me的子集,同样对于Nt/2000来说,nt的注册表是2000的子集。
另外,对于同一种Windows还有版本之间的差别。
95有两个版本,一个是95,另一个是后续版本Windows95OSR2.同样windows98也有两个版本,而WindowsNT又按功能划分为Workstation(工作站版)和Server(服务器版),Windows2000则按功能分为四个版本:
专业版,服务器版,高级服务器版,数据中心服务器版。
这些版本间的差别较小,一般前一版本是后续版本的子集。
低版本是高版本的子集。
还有,对于同一版本还有语言之间的差别,如有简体版,繁体版,英文版等等。
第二节
注册表的组成
2.1注册表的存放地
Windows操作系统由许多的文件组成,注册表也不例外,也是由文件组成的。
*对于Windows95/98/Me,注册表文件是C:
\windows文件下的system.dat和user.dat文件。
注意:
其中C:
\windows是安装windows95/98/Me的目录。
*对于WindowsNT,注册表文件是c:
\winnt\system32\config文件夹下的Default、SAM、SECURITY、SOFTWARE和SYSTEM文件,包括以LOG和SAV为扩展名的同名文件。
同时,注册表文件还包括c:
\winnt\profiles\username文件夹下的NTUSER.DAT和NTUSER.DAT.LOG文件。
注意:
其中C:
\winnt是安装windowsNT的目录,username是具体的某个用户。
例如用户abc的ntuser.dat文件存放的目录是c:
\winnt\profiles\abc。
*对于windows2000,注册表文件是c:
\winnt\system32\config文件夹下的Default、SAM、SECURITY、SOFTWARE和SYSTEM文件,包括以LOG和SAV为扩展名的同名文件。
同时,注册表文件还包括c:
\DocumentsandSetting\username文件夹下的NTUSER.DAT和NTUSER.DAT.LOG文件。
如果windows2000是从windowsNT升级安装来的,则Ntuser.dat和Ntuser.dat.log文件不放在c:
\DocumentsandSetting\Username文件夹下,而放在文件夹c:
\winnt\profiles\username下,也就是说windows2000和windowsNT存放在同一位置。
提示:
注册表文件都是隐含的,因此您进入到上述的目录后,可能会可不到这些文件,你可以通过在资源管理器的菜单栏中选择“文件夹选项”,进入对话框后,在“查看”选项卡中选中“显示所有的文件和文件夹”选项确定即可。
2.2注册表的数据库结构
2.2.1注册表的目录树
注册表物理上是由若干个文件组成的,在逻辑上,它是一个树形的数据库结构。
它由两个目录树组成,一个是HKEY_LOCAL_MACHINE,与操作系统中系统相关的信息对应,一个是HKEY_USERS,与操作系统中用户相关的信息对应。
但是为了便于注册表信息的查找,微软将注册表分为七个目录树,如下表
目录树名称
说明
HKEY_LOCAL_MACHINE
包含关于本地计算机系统的信息,包括硬件和操作系统数据,如总线类型、系统内存、设置驱动程序和启动控制数据。
HKEY_CLASSES_ROOT
包含由各种OLE技术使用的信息和文件类型关联数据。
Windows95/98/Me/Nt中,该目录树直接指向HKEY_LOCAL_MACHINE\SOFTWARE\CLASSES。
但是在windows2000中,该目录树为HKEY_LOCAL_MACHINE\SOFTWARE\CLASSES和HKEY_CURRENT_USER\SOFTWARE\CLASSES的并集。
如果某个项或者值在HKEY_LOCAL_MACHINE\SOFTWARE\CLAASES和HKEY_CURRENT_USER\SOFTWARE\CLASSES中都存在,并且不一致,那么HKEY_CLASSES_ROOT中显示的是HKEY_CURRENT_USER\SOFTWARE\CLASSES中的项或值,就是说,HKEY_CURRENT_USER\SOFTWARE\CLASSES中的内容优先。
HKEY_CURRENT_USER
包含当前以交互方式(与远程方式相反)登录用户的用户配置文件,包括环境变量、桌面设置、网络连接、打印机和程序首选项。
在windows95/98/Me中,该目录树是从HKEY_USERS\USERNAME映射过来的,其中username是当前登录的用户名。
如果没有使用用户登录,则是从HKEY_USERS\.Default映射过来的。
在windows2000/nt中,该目录树指向HKEY_USERS\当前用户的安全ID,形式可能为HKEY_USERS\S-1-5-21-1708537768-839522115-1957994488-1004。
HKEY_USERS
包含关于动态加载的用户配置文件和默认的配置文件的信息。
对于windows95/98/Me,因为所有的用户共同使用user.dat文件,因此在HKEY_USERS下会更出所有的用户信息。
对于windowsNT/2000,因为各个用户有各自的NTuser.dat文件,所以用户将看不到其他用户的信息。
如果要远程访问服务器的用户在服务器上的该项下没有配置文件,他们的配置文件将加载到他们自己计算机的注册表中。
HKEY_CURRENT_CONFIG
包含在启动时由本地计算机系统使用的硬件配置文件的相关信息。
该信息用于配置一些设置,如要加载的设置驱动程序和显示时要使用的分辩率。
该子目录树是HKEY_LOCAL_MACHINE目录树的一部分。
对于windows95/98/Me,该目录树是从HKEY_LOCAL_MACHINE\CONFIG\0001映射来的,如果windows95/98/Me作了多重配件配置,在HKEY_LOCAL_MACHINE\CONFIG下会有0001、0002等对应着不同的硬件配置。
启动时选择了哪个配置,HKEY_CURRENT_CONFIG就映射到哪个配置。
对于windowsNT/2000是从目录树HKEY_LOCAL_MACHINE\SYSTEM\CURRENTCONTROLSET\HARDWAREPROFILES\CURRENT映射来的。
HKEY_DYN_DATA
(仅在Windows95/98/Me中使用)
HKEY_DYN_DATA里的信息在每次系统启动时写入,称作动态数据(DynamicData)。
HKEY_DYN_DATA记录了各个设置在系统启动时的状态和运行情况。
该目录树只在windows95/98/Me中使用,WindowsNt保留了该目录树,但是不使用它,Windows2000则直接去除了该目录树。
HKEY_PERFORMANCE_DATA
(仅在WindowsNT/2000中使用)
HKEY_PERFORMANCE_DATA和WindowsNt/2000的性能数据有关。
当软件组件安装或者运行时,在该目录树下创建相应的对象和计数器的项。
通过访问该目录树可以获取运行性能。
该目录树只在WindowsNT/2000中存在,在Windows95/98/Me中没有,该目录树是比较特殊的,它并不在注册表文件中存放实际的内容,当通过注册表API函数访问该目录树时,实际上是直接从软件组件处获取性能数据。
要注意的是,在Windows2000/Nt提供的注册表编辑器里,并不显示该目录树。
2.2.2注册表文件的对应关系
在windows95/98/Me中,只有两个注册表文件,system.dat文件对应着HKEY_LOCAL_MACHINE目录树,user.dat文件对应着HKEY_USERS目录树,其余的目录树都是从HKEY_LOCAL_MACHINE和HKEY_USERS映射过去的。
在windowsNT/2000中,注册表文件就很多了,这些注册表文件的对应关系如下图:
注册表的目录树
对应用的注册表文件
HKEY_LOCAL_MACHINE\SAM
Sam和Sam.log
HKEY_LOCAL_MACHINE\SECURITY
Security和Security.log
HKEY_LOCAL_MACHINE\SYSTEM
System和System.log
HKEY_CURRENT_CONFIG
System和System.log
HKEY_CURRENT_USER
Ntuser.dat和Ntuser.dat.log
HKEY_USERS\.DEFAULT
Default和Default.log
HKEY_LOCAL_MACHINE\SOFTWARE
Software和Software.log
2.2.3注册表的树形结构和数据类型
由于注册表是树形结构,所以,将2.2.1中说明的七个项称作“预定义表项”,而其下的各个目录项就称为“表项”或“子键”(在注册表编辑器的左边栏中),将其下的各个参数项称为“值项”,值项的内容就叫做“值”(在注册表编辑器的右边栏中)。
说明:
值项也可以是空的,就是说,只有值项名称和值项类型,而没有值。
值项名称和值项类型必须是同时存在的,在注册表中,不能存在没有确定值项类型的值项。
下表列出了注册表中你可以编辑的数据类型,其它如:
REG_NONE,REG_LNK,REG_DWORD_BIG_ENDIAN,REG_DWORD_LITTLE_ENDIAN,REG_RESOURCE_REQUIREMENTS_LIST等在这里就不介绍了,因为一般也不会涉及到这些类型。
数据类型
说明
REG_BINARY
未处理的二进制数据。
多数硬件组件信息都以二进制数据存储,而以十六进制格式显示在注册表编辑器中。
使用二进制数据,可以用来表示任意长度的整数,以及硬件信息等。
REG_DWORD
双字节类型,数据由4个字节长达的数表示。
它能够表达的整数范围从0到4294967296。
许多设备驱动程序和服务的参数是这种类型并在注册表编辑器中以二进制、十六进制或十进制的格式显示。
REG_EXPAND_SZ
长度可变的数据串,该数据类型包含在程序或服务使用该数据时确定的变量,例如包含变量%systemroot%。
REG_MULTI_SZ
多个字符串。
字符串之间用空格、逗号或其他标记分开。
REG_SZ
固定长度的文本串。
第三节
注册表在Windows中的地位
注册表在Windows中起着核心的作用。
注册表内存放了所有的硬件信息,包括系统启动时可识别、BIOS可识别的和BIOS不可识别的。
注册表通过描述硬件的驱动程序和参数,使得Windows可以知道,到哪里去装入硬件的驱动程序,可以分配给与它哪些资源,分配的资源之间是否有冲突等等。
在注册表中,还存放了硬件的运行状态,应用程序可以通过注册表这层“中介”来取得硬件信息。
软件方面,一方面,注册表储存了windows的所有信息,这些信息控制了Windows的桌面外观、浏览器界面、系统性能、网络协议等。
如果这些信息出错或损坏,Windows将无法正常工作。
另一方面,注册表也存储了32位应用程序和Windows打交道的信息。
应用程序的安装注册信息,启动参数,文件名关联等等都离不开注册表。
像一些高级技术,如OLE,DDE等的实现,更是离不开注册表。
通过注册表,Windows操作系统和应用程序十分密切地结合在一起。
注册表在Windows中的作用分析
1.设置
Windows安装程序和其他(程序或硬件的)安装程序,在安装或配置时,都会将配置数据添加到注册表中。
例如,安装新的SCSI适配器或更改显示器的设置时,系统将添加新的信息。
安装程序也读取注册表信息来确定是否安装了必须的组件。
2.识别器
每次启动运行Windows的计算机时,识别程序都将把硬件配置数据放置在注册表中,该数据包括系统中检测到的硬件列表。
对于WindowsNT/2000,硬件检测由硬件识别程序(NT)和Windows2000内核(NToskrnl.exe)程序完成。
3.Windows内核
在系统启动过程中,Windows内核从注册表中提取信息,如加载哪些设置驱动程序以及它们的加载顺序。
对于Windows2000/NT,NToskrnl.exe程序也将关于自身的信息传递到注册表中。
4.设备驱动程序
设备驱动程序从注册表发送和接收加载参数及配置数据。
该数据与MS-DOS操作系统的Config.sys文件中的DEVICE=XXXX上可以找到的内容相似。
设备的驱动程序必须报告它所使用的系统资源,例如硬件中断和DMA通道,以便系统将此信息添加到注册表中。
程序及设备驱动程序可以访问该注册表信息,以便向用户提供智能安装及配置程序。
5.管理工具
可以使用Windows中的选项和管理工具(如控制面板,系统策略,组策略等)来直接修改配置数据。
第四节
注册表重要表项简单剖析
4.1HKEY_LOCAL_MACHINE---计算机软硬件配置信息
1.HKEY_LOCAL_MACHINE\HARDWARE---硬件信息(forNt/2000)
2.HKEY_LOCAL_MACHINE\ENUM---硬件信息(for95/98/Me)
3.HKEY_LOCAL_MACHINE\SAM---安全访问管理器(forNt/2000)
4.HKEY_LOCAL_MACHINE\SECURITY---安全性相关信息(forNt/2000)
5.HKEY_LOCAL_MACHINE\SOFTWARE---系统中安装的软件信息包括Windows操作系统本身
6.HKEY_LOCAL_MACHINE\SYSTEM---系统中的计算机信息包括各种硬件信息,及与软件相关的软件信息如驱动程序等。
4.2HKEY_USERS---用户设置信息
1.HKEY_USERS\.Default---默认用户设置信息
2.HKEY_USERS\
3.HKEY_USERS\<用户名>(for95/98/Me)具体的某人用户的配置信息
4.3HKEY_CURRENT_CONFIG---当前计算机设置
4.4HKEY_CURRENT_USER---当前用户配置信息
4.5HKEY_CLASSES_ROOT---文件类型和COM(ComponentObjectModel组件对象模型)信息
4.6HKEY_DYN_DATA---动态数据信息包括即插即用设置信息及系统性能数据信息
第五节
注册表参数
注册表中的参数
在注册表中,经常会看到%1,%2,%3,%4这四个参数,对于不同的情况,%2,%3,%4的含义不同,一般情况下,%1表示文件自身,%2表示默认打印机,%3表示驱动器,%4表示端口。
注册表中图标顺序的表示方式
比如某一值项的值为C:
\WINDOWS\SYSTEM\SHELL32.DLL,3它就表示为文件c:
\windows\system\shell32.dll中的第4个图标,因为系统默认的图标顺序号是从0开始的。
另外如c:
\windows\explorer.exe,-1277,则表示为文件c:
\windows\explorer.exe中资源ID号为第1277号的图标,资源ID号是在程序编译时由编写者定义的,用来唯一区分程序文件中的资源,因为图标也是资源的一种。
第六节
注册表编辑器的使用
6.1注册表编辑器的运行
点击“开始”按钮,在出现的菜单栏中点击“运行...”按钮,然后在“打开”框中键入Registry.exe就可以打开注册表编辑器了。
6.2备份注册表
打开“注册表编辑器”后,在“注册表编辑器”的菜单上,单击“导出注册表文件”。
在出现的“导出注册表文件”对话框中键入保存导出文件的位置,然后键入新文件名(如果你是要导出整个注册表那么在下面的单选按钮中选择“全部”),单击“保存”按钮就可以了。
6.3还原注册表
打开“注册表编辑器”后,在“注册表编辑器”的菜单上,单击“导入注册表文件”,在出现的“导入注册表文件”对话框中选择一个注册表文件(.reg文件),然后单击“打开”即可。
6.4注册表的编辑
1.查找注册表中的字符串、值或注册表项
打开“注册表编辑器”,单击“查找”菜单中的“查找”菜单项;在“查找目标”对话框中键入需要查找的字符串、值或注册表项,并单击选中的“项”,“值”,“数据”和“全字匹配”复选框,然后单击“查找下一个”。
需要重复查找时,可以按快捷键F3.
2.在注册表中增/删项
双击要添加新项的注册表列表,然后单击要在其上添加新项的表项;在“编辑”菜单中指向“新建”选择“项”。
键入新注册表项的名称,然后回车。
要删除项,单击要删除的项,在“编辑”菜单上单击“删除”即可,当然你也可以通过鼠标右键单击要在其上添加新项的表项,在出现的快捷菜单中进行操作。
3.在注册表中添加或删除值项
单击要添加新值项的注册表表项或值项,在“编辑”菜单中指向“新建”选择你要添加的“值项”类型,有“字符串”、“二进制值”及“双字节值”,选中一项后,键入新值项的名称,然后按回车键。
在添加值时,值项名和数据类型将用默认值保存。
双击你刚添加的“值项名”,在出现的对话框中输入新的“值”后按“确定”即可。
“删除”值项则只要单击要删除的值项,在“编辑”菜单上单击“删除”即可,你也可以通过鼠标右键单击,在出现的快捷菜单中进行相应的操作。
4.在注册表中编辑值项
你只要双击你要修改的“值项”名后,在出现的对话框中输入新的“值”,按“确定”即可。
5.在注册表中重命名表项或值项
你只需选中你要重命名的“表项”或“值项”,然后用鼠标右键单击该“表项”或“值项”,在出现的快捷菜单中选择“重命名”后,输入新的名称即可。
注意:
你不能删除像和HKEY_LOCAL_MACHINE,HKEY_CURRENT_USER等这些预定义表项。
第七节
更新注册表,使设置生效
为了使对注册表的操作生效,需要更新系统,其方法有:
1.重新启动Windows,如果修改了与系统相关的内容,则一般都需要重表启动Windows来使设置生效。
2.重新启动桌面
在Windows95/98/Me中,同时按下Ctrl+Alt+Delete,然后选中Explorer.exe,单击“结束任务”按钮,此时Windows95/98会出现关机的画面,并询问是否关机,单击“否”,回到正常窗口。
等待一会儿,会出现一个信息窗口,告诉用户Explorer进程已经没有反应,用户可以按“结束任务”按钮结束该程序,或按“取消”按钮返回Windows等待Explorer自己结束。
这时用户选择点击“结束任务”,Explorer被结束后,Windows95/98会自动运行一个新的Explorer,桌面就自然得到更新。
在WindowsNT/2000/Xp中,可以在任务管理器中结束Explorer.exe的运行。
同时按下Ctrl+Alt+Delete键,按下“任务管理器”按钮,查看“进程”进程选项卡,选中Exploere.exe,然后单击“结束任务”按钮,Explorer.exe就会被结束掉,同时桌面也会消失。
然后切换到“应用程序”选项卡,单击“新任务”按钮,在输入框中输入explorer,按下“确定”键,WindowsNt/2000/Xp就会运行一个新的Explorer,桌面就自然得到更新。
3.刷新桌面和资源管理器
在资源管理器或桌面中按下F5,或鼠标右击,在出现的快捷菜单中选“刷新”菜单项即可。
4.另外用本程序中微晓注册表修改大师中选项中的“刷新系统”也能刷新系统,以减少重启次数,因为用上面第2,3项效果不是很好。
本软件会陆续增加一些如何具体修改注册表中项的提示说明,教你如何找到那些设置项,并且怎样修改,但它只会提供给注册用户,让用户对注册表有更多的了解。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 注册表 基础知识