曲径通幽论坛

标题: 注册表 [打印本页]

作者: beyes    时间: 2013-4-15 17:44
标题: 注册表
注册表用来存储系统和应用程序的配置数据。很多系统和应用程序重要的配置信息都存储在注册表中。注册表是一种树形结构数据库,树的每个节点称为键(key),每个键还可以包含若干子键,键可以存储数据,这些数据称为“键值”。一个键不论是否有子键,都可以有键值。一个键可以有许多个键值,每个键值都有一个名字,包含若干数据,这些数据的类型有许多种,下面列出了常见的注册表数据类型:
类型 含义
REG_BINARY任何形式的二进制数据
REG_DWORD32 位数据
REG_DWORD_LITTLE_ENDIAN以 little-endian(小端)形式存储的32位数据
REG_DWORD_BIG_ENDIAN以 big-endian(大端)形式存储的32位数据
REG_EXPAND_SZ以NULL结尾的字符串,可以使用环境变量,如%PATH%
REG_LINK只能由操作系统使用的类型
REG_MULTI_SZ 字符串数组,以NULL结束字符串,以两个NULL结束数组
REG_NONE未定义的数据类型
REG_QWORD64位数据
REG_QWORD_LITTLE_ENDIAN little-endian形式的 64 位数据
REG_SZ 字符串,以 NULL 结束


比如键 HKEY_LOCAL_MACHINE\SYSTEM\Setup 具有 11 个键值,每个键值都有名称,各键值的数据类型不相同,而且它底下还有子键:
[attach]1516[/attach]


在对注册表键操作之前,需要使用 RegOpenKey()RegOpenKeyEx() 函数打开键,然后再进行操作。
如果要创建新的键,那么就使用 RegCreateKey()RegCreateKeyEx() 函数。

上面两组函数都返回键的句柄(HKEY 类型)。

如果要删除键则使用 RegDeleteKey()RegDeleteKeyEx() 函数。

RegQueryInfoKey() 可以获取键的多方面信息,包括键值,子键等。

获取和设置键值还可以使用 RegGetValue()RegQueryValueEx(), RegSetValueEx()RegQueryMultipleValues() 等函数。


删除指定键值使用 RegDeleteValue() 函数。


遍历子键和键值可以使用 RegEnumKeyEx() RegEnumValue() 函数。




欢迎光临 曲径通幽论坛 (http://www.groad.net/bbs/) Powered by Discuz! X3.2