零、引言
注册表中记录了许多的设备信息和配置信息,在开发中,往往会通过他们来获取设备信息。和处理一些系统的设置。所以有必要知道操作哪个键值。
一、什么是注册表
- 注册表是2000/XP操作系统、硬件设备以及客户应用程序得以正常运行和保存设置的核心“数据库”,也可以说是一个非常巨大的树状分层结构的数据库系统。
- 注册表记录了用户安装在计算机上的软件和每个程序的相互关联信息,它包括了计算机的硬件配置,包括自动配置的即插即用的设备和已有的各种设备说明、状态属性以及各种状态信息和数据
利用一个功能强大的注册表数据库来统一集中地管理系统硬件设施、软件配置等信息,从而方便了管理,增强了系统的稳定性。
二、注册表的功能
刚才我们看到了,注册表中记录了用户安装在计算机上的软件和每个程序的相关信息。
- 通过它可以控制硬件、软件、用户环境和操作系统界面的数据信息文件。
注册表文件的数据信息保存在system.dat
和user.dat
中、 利用regedit.exe
程序能够存取注册表文件(其实大家可能也知道regedt32.exe
,这两个程序是一样的)
三、编辑器说明
**进注册表:**在运行里键入regedit就可以了
- 根键:这个称为HKEY…………,某一项的句柄
- 项:附加的文件夹和一个或多个值
- 子项:在某一个项(父项)下面出现的项(子项)
- 值项:带有一个名称和一个值的有序值,每个项都可包括任何数量的值项,值项由三个部分组成:名称、数据类型和数据。
说明:
- 名称:不包括反斜线的字符、数字、代表符和空格的任意组合。同一键中不可有相同的名称
- 数据类型:包括字符串、二进制和双字节等
- 数据:值项的具体值,它的大小可以占用64KB
四、总体结构分析
注册表包括以下5个根键
- HKEY_CLASSES_ROOT
说明:该根键包括启动应用程序所需的全部信息,包括扩展名,应用程序与文档之间的关系,驱动程序名,DDE和OLE信息,类ID编号和应用程序与文档的图标等。 - HKEY_CURRENT_USER
说明: 该根键包括当前登录用户的配置信息,包括环境变量,个人程序以及桌面设置等 - .HKEY_LOCAL_MACHINE
说明:该根键包括本地计算机的系统信息,包括硬件和操作系统信息,安全数据和计算机专用的各类软件设置信息 - HKEY_USERS
说明:该根键包括计算机的所有用户使用的配置数据,这些数据只有在用户登录系统时才能访问。这些信息告诉系统当前用户使用的图标,激活的程序组,开始菜单的内容以及颜色,字体 - HKEY_CURRENT_CONFIG
说明:该根键包括当前硬件的配置信息,其中的信息是从HKEY_LOCAL_MACHINE中映射出来的。
注册表中常用的数据类型有5种:
- 二进制值(reg_binary):多数硬件信息以二进制数据存储,而以十六进制格式显示在注册表编辑器中
- 字符串值(reg_sz):包括字符串的注册表键,使用字符串数据类型
- 双字节值(reg_dword):是32位信息常显示成4个字节。它在出错控制功能上用处极大,其数据一般以十六进制格式显示在注册表编辑器中。
- 多字符串值(reg_multi_sz):允许将一系列项目作为单独的一个值使用。对于多种网络协议、多个项目、设备列表以及其他类似的列表项目来说,可以使用多字符串值
- 可扩充字符串值(reg_expand_sz) 代表一个可扩展的字符串