一、注册表概述
注册表是windows操作系统中的一个核心数据库,其中存放着各种参数,直接控制着windows的启动、硬件驱动程序的装载以及一些windows应用程序的运行,从而在整个系统中起着核心作用.
这些作用包括了软、硬件的相关配置和状态信息,比如注册表中保存有应用程序和资源管理器外壳的初始条件、首选项和卸载数据等,联网计算机的整个系统的设置和各种许可,文件扩展名与应用程序的关联,硬件部件的描述、状态和属性,性能记录和其他底层的系统状态信息,以及其他数据等.
二、数据结构
注册表由键(或称”项”)、子键(子项)和值项构成.一个键就是分支中的一个文件夹,而子键就是这个文件夹中的子文件夹,子键同样是一个键.一个值项则是一个键的当前定义,由名称、数据类型以及分配的值组成.一个键可以有一个或多个值,每个值的名称各不相同,如果一个值的名称为空,则该值为该键的默认值.
三、数据类型
注册表的数据类型主要有以下四种:
显示类型(在编辑器中) | 数据类型 | 说明
REG_SZ | 字符串 文本字符串
REG_MULTI_SZ 多字符串 含有多个文本值的字符串
REG_BINARY 二进制数 二进制值,以十六进制显示.
REG_DWORD 双字 一个32位的二进制值,显示为8位的十六进制值.
四、各主键的简单介绍
- HKEY_LOCAL_MACHINE 是一个显示控制系统和软件的处理键.HKLM键保存着计算机的系统信息.它包括网络和硬件上所有的软件设置.
- HKEY_CLASSES_ROOT 是系统中控制所有数据文件的项.
- HKEY_USERS 将缺省用户和目前登陆用户的信息输入到注册表编辑器
- HKEY_CURRENT_USER 包含着在HKEY_USERS安全辨别里列出的同样信息
- HKEY_CURRENT_CONFIG 包括了系统中现有的所有配置文件的细节.
- HKEY_LOCAL_MACHINE中同样的数据和任何注册表的变化都会同时的变化.
五、相关函数
1. 创建键 RegCreateKeyEx
LONG RegCreateKeyEx(
HKEY hKey, // handle to open key
LPCTSTR lpSubKey, // subkey name
DWORD Reserved, // reserved
LPTSTR lpClass, // class string
DWORD dwOptions, // special options
REGSAM samDesired, // desired security access
LPSECURITY_ATTRIBUTES lpSecurityAttributes, // inheritance
PHKEY phkResult, // key handle
LPDWORD lpdwDisposition // disposition value buffer
);
- hKey: 要打开键的句柄或以下预定义句柄
- HKEY_CLASSES_ROOT HKEY_CURRENT_USER
- HKEY_LOCAL_MACHINE HKEY_USERS
- lpSubKey: 指向一个用于定义子键路径的字符串
- Reserved,dwOptions,samDesired: 置0
- lpClass,lpSecurityAttributes: 置NULL
- phkResult: 用于接收键句柄
- lpdwDisposition: 接收的相关信息,取值如下
- REG_CREATED_NEW_KEY 创建成功
- REG_OPENED_EXISTING_KEY 键已存在
2. 打开键 RegOpenKeyEx
LONG RegOpenKeyEx(
HKEY hKey, // handle to open key