电脑中注册表被称为Windows操作系统的核心,它的工作原理实质是一个庞大的数据库,存放了关于计算机硬件的配置信息、系统和应用软件的初始化信息、应用软件和文档文件的关联关系、硬件设备的说明以及各种状态信息和数据,包括Windows操作时不断引用的信息。例如:系统中的硬件资源、硬件信息、分配正在使用的端口、每个用户的配置文件、计算机上安装的应用程序以及每个应用程序可以创建的文件类型等。
主要作用:
1、记录安装信息
2、设置硬件
3、设置软件
4、定制Windows
5、系统安全管理
6、自动运行程序
7、网络设置

注册表的相关文件都是哪些?

注册表的分支结构

注册表有五个一级分支,下面是这五个分支的名称及作用:
名称 作用
HKEY_CLASSES_ROOT 存储Windows可识别的文件类型的详细列表,以及相关联的程序。
HKEY_CURRENT_USER 存储当前用户设置的信息。
HKEY_LOCAL_MACHINE 包括安装在计算机上的硬件和软件的信息。
HKEY_USERS 包含使用计算机的用户的信息。
HKEY_CURRENT_CONFIG 这个分支包含计算机当前的硬件配置信息。
注册表的存储方式

注册表的存储位置随着Windows的版本变化而不同。尤其是Windows NT系列操作系统和Windows 95系列的存储方式有很大区别。注册表被分成多个文件存储,称为Registry Hives,每一个文件被称为一个配置单元。

在早期的Windows 3.x系列中,注册表仅包含一个reg.dat文件,所存放的内容后来演变为HKEY_CLASSES_ROOT分支。

Windows NT家族的配置单元文件:
名称 注册表分支 作用
SYSTEM HKEY_LOCAL_MACHINE\SYSTEM 存储计算机硬件和系统的信息
NTUSER.DAT HKEY_CURRENT_USER 存储用户参数选择的信息(此文件放置于用户个人目录,和其他注册表文件是分开的)
SAM HKEY_LOCAL_MACHINE\SAM 用户及密码的数据库
SECURITY HKEY_LOCAL_MACHINE\SECURITY 安全性设置信息
SOFTWARE HKEY_LOCAL_MACHINE\SOFTWARE 安装的软件信息
DEFAULT HKEY_USERS\DEFAULT 缺省启动用户的信息
USERDIFF HKEY_USERS 管理员对用户强行进行的设置

假设Windows安装于C盘,则在Windows XP以前,文件存放于C:\WINNT\SYSTEM32\CONFIG,而XP及以后则存放于C:\WINDOWS\SYSTEM32\CONFIG

Windos95家族的配置文件
名称 注册表分支 作用
CLASSES HKEY_CLASSES_ROOT 存储软件组件库有关信息
USER.DAT HKEY_USERS 存储用户参数选择的信息
SYSTEM.DAT HKEY_LOCAL_MACHINE 系统信息

Windows文件夹中有system.dat和user.dat这样两个隐藏文件,其中保存了至关重要的注册表信息。

注册表是Windows程序员建造的一个复杂的信息数据库,它是多层次式的。在不同系统上注册表的基本结构相同。其中的复杂数据会在不同方式上结合,从而产生出一个绝对唯一的注册表。

在WIN95系列(例如Windows XP)操作系统下,
Win95中所有系统注册信息保存在windows目录下的SYSTEM.DAT文件里。所有硬件设置和软件信息也保存在这个文件。它要比NT注册表文件简单的多,因为这里并不需要更多的控制。Win95被设计为一个网络的客户或者单独工作的系统,所以用户控制或者安全级别和NT不一样。这使得Win95注册表工作比NT更容易,所以这个文件也比较小。
Win95用户的注册数据一般被保存在windows目录下的user.dat里。如果你在控制面板|密码|用户配置文件中创建并使用多于一个用户的配置文件,每个用户就会有在\WINDOWS\Profiles\username\USER.DAT下它自己的user.dat文件。在启动时,系统将记录你的登陆,从你目录中的配置文件(USER.DAT信息)将被装入,以用来保持你自己的桌面和图标。

在WIN NT系列操作系统下,

计算机配置和缺省用户设置的注册表数据在Winnt中被保存在下面这五个文件中:
DEFAULT,SAM,SECURITY,SOFTWARE,SYSTEM,NTUSER.DAT。

Winnt和Win95的注册表并不兼容。从Win95向Winnt升级需要你重新安装32位应用程序,重新在桌面上创建图标,并重新建立用户环境。

与INI文件不同的是:

1.注册表采用了二进制形式登录数据;

2.注册表支持子键,各级子关键字都有自己的“键值”;

3.注册表中的键值项可以包含可执行代码,而不是简单的字串;

4.在同一台计算机上,注册表可以存储多个用户的特性。

注册表的特点有:

1.注册表允许对硬件、系统参数、应用程序和设备驱动程序进行跟踪配置,这使得修改某些设置后不用重新启动成为可能。

2.注册表中登录的硬件部分数据可以支持高版本Windows的即插即用特性。当Windows检测到机器上的新设备时,就把有关数据保存到注册表中,另外,还可以避免新设备与原有设备之间的资源冲突。

3.管理人员和用户通过注册表可以在网络上检查系统的配置和设置,使得远程管理得以实现。

注册表的数据结构

注册表的组织方式跟文件目录比较相似,主要分为根键、子键和键值项三部分,与文件目录对应的话就是根目录、子目录和文件。分别介绍一下这三部分:
(1)根键。分为5个,分别为HKEY_CLASSES_ROOT, HKEY_CURRENT_USER,HKEY_LOCAL_MACHINE,HKEY_USERS和HKEY_CURRENT_CONFIG,把它们理解成磁盘的五个分区可以了。
(2)子键。可以有多个子键和键值项,就像一个目录中可以有多个子目录和多个文件一样。

(3)键值项。可以理解为文件,它由三部分组成,分别为 :名称、类型、数据。

注释:

注册表中键相当于文件系统中目录这个概念。根键,对应即根目录。根键,主键(父键),子键,本质都是键。

主键(父键)和子键是一个相对的概念,不是绝对概念,即键A在某一情况时称为子键,另一情况时称为主键,而不是固定什么情况都是称为子键或是父键。例如,键C下一级里有键B,键B下一级里有键A,则键B对键C来说是键C的子键,而键B对键A来说是键A的主键。

注册表的由来
在Windows 3.x操作系统中,注册表是一个极小文件,其文件名为Reg.dat,里面只存放了某些文件类型的
注册表所设定的默认打开方式注册表所设定的默认打开方式
应用程序关联,大部分的设置放在Win.ini、System.ini等多个初始化INI文件中。由于这些初始化文件不便于管理和维护,时常出现一些因INI文件遭到破坏而导致系统无法启动的问题。为了使系统运行得更为稳定、健壮,Windows 95/98设计师们借用了Windows NT中的注册表的思想,将注册表引入到Windows 95/98操作系统中,而且将INI文件中的大部分设置也移植到注册表中,因此,注册表在Windows 95/98操作系统的启动、运行过程中起着重要的作用。

作用
注册表是windows操作系统中的一个核心数据库,其中存放着各种参数,直接控制着windows的启动、硬件驱动程序的装载以及一些windows应用程序的运行,从而在整个系统中起着核心作用。这些作用包括了软、硬件的相关配置和状态信息,比如注册表中保存有应用程序和资源管理器外壳的初始条件、首选项和卸载数据等,联网计算机的整个系统的设置和各种许可,文件扩展名与应用程序的关联,硬件部件的描述、状态和属性,性能记录和其他底层的系统状态信息,以及其他数据等。
具体来说,在启动Windows时,Registry会对照已有硬件配置数据,检测新的硬件信息;系统内核从
注册表组成注册表组成
Resistry中选取信息,包括要装入什么设备驱动程序,以及依什么次序装入,内核传送回它自身的信息,例如版权号等;同时设备驱动程序也向Registry传送数据,并从Registry接收装入和配置参数,一个好的设备驱动程序会告诉Resistry它在使用什么系统资源,例如硬件中断或DMA通道等,另外,设备驱动程序还要报告所发现的配置数据;为应用程序或硬件的运行提供增加新的配置数据的服务。配合INI文件兼容16位Windows应用程序,当安装—个基于Windows 3.x的应用程序时,应用程序的安装程序Setup像在windows中—样创建它自己的INI文件或在Win.ini和System.ini文件中创建入口;同时windows还提供了大量其他接口,允许用户修改系统配置数据,例如控制面板、设置程序等。
如果注册表受到了破坏,轻则使windOWS的启动过程出现异常,重则可能会导致整个windows系统的完全瘫痪。因此正确地认识、使用,特别是及时备份以及有问题恢复注册表对windows用户来说就显得非常重要。[2]

注册表的数据结构
注册表由键(或称“项”)、子键(子项)和值项构成。一个键就是分支中的一个文件夹,而子键就是这个文件夹中的子文件夹,子键同样是一个键。一个值项则是一个键的当前定义,由名称、数据类型以及分配的值组成。一个键可以有一个或多个值,每个值的名称各不相同,如果一个值的名称为空,则该值为该键的默认值。
  在注册表编辑器(Regedit.exe)中,数据结构显示如下,其中,command键是open键的子键,(默认)表示该值是默认值,值名称为空,其数据类型为REG_SZ,数据值为%systemroot%/system32/NOTEPAD.EXE “%1
  数据类型
注册表注册表

  注册表的数据类型主要有以下四种:
  显示类型(在编辑器中) 数据类型 说明
  REG_SZ 字符串 文本字符串
  REG_MULTI_SZ 多字符串 含有多个文本值的字符串
  REG_BINARY 二进制数 二进制值,以十六进制显示。
  REG_DWORD 双字 一个32位的二进制值,显示为8位的十六进制值。

相关术语
1、HKEY :“根键”或“主键”,它的图标与资源管理器中文件夹的图标有点儿相像。Windows98将注册表分为六个部分,并称之为 HKEY_name,它意味着某一键的句柄。
2、key(键):它包含了附加的文件夹和一个或多个值。
3、subkey(子键):在某一个键(父键)下面出现的键(子键)。
4、branch(分支):代表一个特定的子键及其所包含的一切。一个分支可以从每个注册表的顶端开始,但通常用以说明一个键和其所有内容。
5、value entry(值项):带有一个名称和一个值的有序值。每个键都可包含任何数量的值项。每个值项均由三部分组成:名称,数据类型,数据。
6、字符串(REG_SZ):顾名思义,一串ASCII码字符。如“Hello World”,是一串文字或词组。在注册表中,字符串值一般用来表示文件的描述、硬件的标识等。通常它由字母和数字组成。注册表总是在引号内显示字符串。
7、二进制(REG_BINARY):如 F03D990000BC ,是没有长度限制的二进制数值,在注册表编辑器中,二进制数据以十六进制的方式显示出来。
8、双 字(REG_DWORD):从字面上理解应该是Double Word ,双字节值。由1-8个十六进制数据组成,我们可用以十六进制或十进制的方式来编辑。如 D1234567。
9、 Default(缺省值):每一个键至少包括一个值项,称为缺省值(Default),它总是一个字串

参见:

http://baike.baidu.com/view/979.htm#5_13

注册表

注册表原理与使用
http://www.360doc.com/content/11/0125/02/5494555_88829738.shtml

welfear的博客:注册表原理浅析- 哲思
注册表原理 谷歌

[注册表]原理结构及恢复IE浏览器实例|电脑入门 - DSW8首页

windows 注册表解析相关推荐

  1. Windows注册表及常见子项

    Windows注册表五大根键以及常用注册表项 注册表概述:注册表是Windows操作系统.硬件设备以及客户应用程序得以正常运行和保存设置的核心"数据库",也可以说是一个非常巨大的树 ...

  2. import _winreg:用python操作修改windows注册表

    用python操作修改windows注册表,显然要比用C或者C++简单. 主要参考资料:官方文档:http://docs.python.org/library/_winreg.html 通过 pyth ...

  3. Windows如何读取Linux,Linux下读取Windows注册表

    原本以为Linux下读取Windows的注册表是个异想天开.无法实现的想法,忽然发现了老外写的一段小文章 http://www.linuxidc.com/Linux/2011-04/34100p2.h ...

  4. SAP GUI和Windows注册表

    本文是2020年第16篇原创文章,也是汪子熙公众号总共第199篇原创文章. 今天是猪年最后一天,大年三十.往年的这个时候,我都有点紧张,因为有亲戚会来串门,而亲戚的熊孩子们,出于好奇总是会觊觎我书房里 ...

  5. 修改.html 打开方式 注册表,windows 注册表修改资料打开方式

    windows 注册表修改文件打开方式 描述遇到的问题 在打开jsp文件时,右击选择打开方式中选择dreamweaver,但是却是以firefox打开 初步分析应该是jsp也和firefox进行了关联 ...

  6. 清理jdk注册表_JDK 9早期版本安装后的Windows注册表清理

    清理jdk注册表 在我的上一篇博文中 ,我演示了在安装早期版本的JDK 9(内部版本68)之后围绕Oracle Java符号链接 (基于Windows的计算机上的C:\ProgramData\Orac ...

  7. JDK 9早期版本安装后的Windows注册表清理

    在我的上一篇博文中 ,我演示了在安装早期版本的JDK 9(内部版本68)之后围绕Oracle Java符号链接 (基于Windows的计算机上的C:\ProgramData\Oracle\Java\j ...

  8. Windows注册表操作基础代码

    Windows注册表操作基础代码   Windows下对注册表进行操作使用的一段基础代码Reg.h: #pragma once #include<assert.h> #include< ...

  9. 关于windows注册表

    Windows 注册表 应该是一个 数据库.里面包含操作系统以及在其上的软件配置信息和旗下的硬件配置信息,有点就是整体和全面,控制面包和gpedit.msc 组策略应该是抽象过后的注册表配置信息,Wi ...

最新文章

  1. 为PHP开发C语言扩展
  2. 完美日记:实现高弹性高稳定电商架构
  3. java过剩_Java程序员的未来发展之路,你是否感到迷茫?你不知道的Java现状
  4. 【转载】SQL Server 批量插入数据的两种方法
  5. 11.29 广州国际设计周
  6. Leetcode每日一题:763.partition-labels(划分字母区间)
  7. android实例教程_Android ConstraintLayout示例教程
  8. java值的传递_Java 8可选–基于值的类使用指南
  9. 4.1线程组(Thread Group)
  10. 清华大学李涓子教授:AI系统如何实现认知推理?
  11. 冰点破解版,百度文库免费下载
  12. mac安装指定版本的ruby_Mac 下安装Ruby环境
  13. 动态规划之背包问题——背包三讲(01背包,完全背包,多重背包)
  14. 微信小程序 video 播放大视频黑屏
  15. 寄生方式分类计算机病毒,计算机病毒寄生方式和感染途径分类
  16. 写给人生的九封信,愿你的人生淡定从容,繁华似锦!!!
  17. C#基础编程——简介及基础语法
  18. 计算机专业中观分析是什么,计算机专业本科论文提纲模板样本 计算机专业本科论文大纲怎样写...
  19. Java+SSM二手交易商城微信小程序源码【包调试运行】
  20. 函数的极值与最大值最小值

热门文章

  1. 微信排版工具Markdown Nice语法规则
  2. numpy_amin函数
  3. 我的职业理想 有关计算机应用300字,我的理想职业作文300字三篇
  4. 帝国cms免费插件,关键词采集插件
  5. 机器学习常用评估指标的前世今生
  6. 【C语言入门】ZZULIOJ 1036-1040
  7. Py之interpret:interpret的简介、安装、案例应用之详细攻略
  8. ctr预估 php,深度学习在CTR预估中的应用
  9. 题目0074-时间格式化
  10. ERP学习网站,搜集中...