注册表是Microsoft Windows中的一个重要数据库、用于存储系统和应用程序的系统信息。
Windows 3.0 | 注册表已经出现 |
---|---|
Windows NT | 广泛使用注册表的操作系统 |
Microsoft Windows 95 | 成为windows用户经常接触的内容 |
HKEY:根键
句柄项:附加的文件夹和一个或多个值
子项:在某一个项(父项)下面出现的项(子项)
值项:带有一个名称和一个值的有序值,每个项都可包括任何数量的项值,值项由三个部分组成:名称、数据类型和数据;
- 名称:不包括反斜杠的字符、数字 、代表符和空格的任意组合。同一键中不可有相同的名称
- 数据类型:包括字符串、二进制和双字节等
- 数据:值项的具体值,它的大小可占用64KB
HKEY_CLASSES_ROOT
HKCR: 该根键包括启动应用程序所需的全部信息,包括拓展名,应用程序与文档之间的关系,驱动程序名,DDE和OLE信息,编号和应用程序与文档的图标等。
在这一个根键中记录的是WINDOWS操作系统中所有数据文件信息内容,主要记录了不同文件的文件拓展名和与之对应的应用程序。
AVIFILE常见子项的含义
CLSID | 分类标识,系统可以用这个类标识来识别相同类型的文件 |
---|---|
Compressors | 它下面有两个子项:auds:用于设置音频数据压缩程序的类标识;vids用于设置视频数据压缩程序的类标识 |
RIFFHandlers | 他的下面有两个类标识:AVI:用于设置AVI文件的的类表示;WAVE:用于设置WAVE文件的类标识 |
shellex | 包括了视频文件的外壳扩展 |
AWFile常见子项的含义
defaultlcon | 用于设置默认图标 |
---|
其他常见子项
protocol | 包括了执行程序和编辑程序的路径和文件名:Stdexecute(stdfileediting)_server:用于指定编辑程序;Stdexecute(stdfileediting) _PackageObjects:用于指定后打开AVI包对象的编辑程序;Stdexecute(stdfileediting) _verb:用于设置编辑程序时的工作状态,其中有0、1、2等状态 |
---|---|
shell | 用于设置视频文件的外壳:open:用于设置打开AVI文件的程序;play:用于设置播放命令的程序 |
CvrVer | 操作命令操作符 |
HKEY_CURRENT_USER
HKCU:该根键包括当前登录用户的配置信息,包括环境变量,个人程序以及桌面设置等
此根键中保存的信息(当前用户的子项信息)与HKEY_USERS_DEFAULT 下面的一摸一样的。任何对HKEY_CURRENT_USER根键中的信息的修改都会导致对HKEY_USERS_DEFAULT中子项的修改
HKEY_LOCAL_MACHINE
KHLM:该根键包括本地计算机的系统信息,包括硬件和操作系统信息,安全数据和计算机专用的各类软件设置信息
此根键中存放的是用来控制系统和软件的设置,由于这些设置是针对那些使用Windows系统的用户而设置的,是一个公共配置信息,所以它与具体的用户没多大关系。
HARDWARE | 该子项包括了系统使用的浮点处理器、串口等信息:ACPI:存放高级电源管理接口数据;DEVICEMAP:用于存放设备映射;DEscriptION:存放有系统信息 |
---|---|
RESOURCEMAP | 用于存放资源列表 |
SAM | 这部分受保护无法查看 |
SECURITY | 该子项只是为将来的高级功能而预留的 |
SOFTWARE | 该子项中保留的是所有已安装的32位应用程序的信息,各个程序的控制信息分别安装在相应的子项中,由于不同的计算机安装的应用程序互不相同,因此这个子项下面的子项信息也不完全也一样 |
SYSTEM | 该子项是启动时所需的信息和修复系统时所需要的信息:currentcontrol:保存了当前驱动程序控制集中的所有信息 |
HKEY_USERS
该根键包括计算机的所有用户使用的配置数据,这些数据只有在用户登录系统时才能访问。这些信息告诉系统当前用户使用的图标,激活的程序组,开始菜单的内容以及颜色,字体
此根键中保存的是默认用户(default),当前登录用户和软件(software)的信息,其中DEFAULT子项是其中最重要的,它的配置是针对未来将会被创建的新用户的。新用户根据默认用户的配置信息来生成自己的配置文件,该配置文件包括环境、屏幕和声音等多种信息,其中常用的3项有。
AppEvents | 它包括了各种应用事件的列表:EventLabels:按字母顺序列表;Schemes:按时间分类列表 |
---|---|
Control Panel | 它包括内容与桌面、光标、键盘和鼠标等设置有关 |
Keyboard layout | 用于键盘的布局(如语言的加载顺序等);Preload:语言的加载顺序;Substitutes:设置可替换的键盘语言布局;Toggle:用于选择键盘语言 |
HKEY_CURRENT_CONFIG
HKCC:该根键包括当前硬件的配置信息,其中的信息是从HKEY_LOCAL_MACHINE中映射出来的。
实际上五大根键并不是五个,其实HKEY_LOCAL_MACHINE、 HKEY_USERS、这两个才是真正的注册表键,其他都是从某个分支映射出来的,相当于快捷键方式或是别名。
总结
HKEY_CLASSES_ROOT | 列出当前计算机的所有COM服务器和与应用程序相关联的所有文件扩展名 |
---|---|
HKEY_CURRENT_USER | 保存着当前登录到这个注册服务的计算机上的用户配置文件 |
HKEY_LOCAL_MACHINE | 保存操作系统及硬件相关信息的配置单元,它是一个公共的配置信息与具体用户无关,其中关键是两个键值 SOFTWARE:保存着与这台电脑中安装的应用程序相关的的设置。SYSTEM:WINDOWS所装载的设备驱动程序以及当WINDOWS启动时所需要的各种参数。 |
HKEY_USERS | 包含当前计算机所有用户配置文件 |
HKEY_CURRENT_CONFIG | 计算机当前会话中的所有硬件配置信息 |
注册表中常用的5种数据类型
二进制(reg_binary) | 多数硬件信息以二进制储存,而以十六进制格式显示在注册表编辑器中 |
---|---|
字符串值(reg_sz) | 包括字符串的注册表键,使用字符串数据类型 |
双字节值(reg_dword) | 是32位信息常显示4个字节。他在出错控制功能上用处极大,其数据一般以十六进制格式显示在注册表编辑器中 |
多字符串值(reg_multi_sz) | 允许将一系列项目作为单独的一个值使用。对于多种网络协议、多个项目、设备列表以及其他类似的项目列表,可以使用多字符串值 |
可扩充字符串值 (reg_expand_sz) | 代表一个可扩展的字符串 |