1、创建键
RegCreateKeyEx函数将创建指定的注册表项,如果这个表项已经存在,则打开该表项;
LONG RegCreateKey(
HKEY hKey,
LPCTSTR lpSubKey,
PHKEY phkResult
);
hKey:指向当前打开表项的句柄,或是下列预定义的保留句柄值之一:
HKEY_CLASSES_ROOT
HKEY_CURRENT_CONFIG
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_USERS
Windows NT: HKEY_PERFORMANCE_DATA
Windows 95 and Windows 98: HKEY_DYN_DATA
lpSubKey:指向将打开或创建的表项的名称的指针,该表项必须是由hKey参数所标识的项的子项;
phkResult:指向一个变量的指针,用来接收打开或创建的表项的句柄;当不再需要此返回的注册表项句柄时,调用RegCloseKey函数关闭这个句柄;
2、打开键
RegOpenKey函数将打开指定的注册表项;
LONG RegOpenKey(
HKEY hKey,
LPCTSTR lpSubKey,
PHKEY phkResult
);
各参数同RegCreateKey的参数相同
3、写入注册表
在注册表中,值包含三个部分:值名称、值类型、值本身;
RegSetValueEx函数可设置注册表项下指定值的数据和类型;
LONG RegSetValueEx(
HKEY hKey,
LPCTSTR lpValueName,
DWORD Reserved,
DWORD dwType,
CONST BYTE *lpData,
DWORD cbData
);
hKey:同RegCreateKey的参数hKey相同;
lpValueName:指向一个字符串的指针,该字符串包含了要设置值的值名称;如果有该名称的值不存在于指定的注册表项中,则将其加入到该表项中;如果该参数为NULL或指向空字符串,则为该表项的默认值或未命名值设置类型和数据;
Reserved:保留参数,必须为0;
dwType:指定将被存储的值的数据类型,包括:
REG_BINARY --任何形式的二进制数据
REG_DWORD --一个32位的数字
REG_DWORD_LITTLE_ENDIAN --一个“低字节在前”格式的32位数字
REG_DWORD_BIG_ENDIAN --一个“高字节在前”格式的32位数字
REG_EXPAND_SZ --一个以0结尾的字符串,该字符串包含对环境变量(”%PATH“)的未扩展引用
REG_LINK --一个Unicode格式的带符号链接
REG_MULTI_SZ --一个以0结尾的字符串数组,该数组以连接两个0为终止符
REG_NONE --未定义值类型
REG_RESOURCE_LIST --一个设备驱动器资源列表
REG_SZ --一个以0结尾的字符串
lpData:指向一个缓冲区,该缓冲区包含了要为了指定值名称存储的数据;
cbData:指定lpData参数所指向的数据的大小,单位为字节;
4、从注册表中读数据
RegQueryValueEx函数将读取注册表项下指定值的数据和类型;
LONG RegQueryValueEx(
HKEY hKey,
LPTSTR lpValueName,
LPDWORD lpReserved,
LPDWORD lpType,
LPBYTE lpData,
LPDWORD lpcbData
);
hKey:同RegCreateKey的参数hKey相同;
lpValueName:指向一个以0结尾的字符串的指针,该字符串包含要查询的值的名称;如果此参数为NULL或指向一个空字符串,则函数将获得该注册表项的未命名值或默认值的类型及数据;
lpReserved:保留参数,必须为NULL;
lpType:指向一个变量的指针,该变量用于接收保存在指定值中的数据的类型代码,包括:
REG_BINARY --任何形式的二进制数据
REG_DWORD --一个32位的数字
REG_DWORD_LITTLE_ENDIAN --一个“低字节在前”格式的32位数字
REG_DWORD_BIG_ENDIAN --一个“高字节在前”格式的32位数字
REG_EXPAND_SZ --一个以0结尾的字符串,该字符串包含对环境变量(”%PATH“)的未扩展引用
REG_LINK --一个Unicode格式的带符号链接
REG_MULTI_SZ --一个以0结尾的字符串数组,该数组以连接两个0为终止符
REG_NONE --未定义值类型
REG_RESOURCE_LIST --一个设备驱动器资源列表
REG_SZ --一个以0结尾的字符串
lpData:指向一个缓冲区,该缓冲区接收该值的数据;
lpcbData:指向一个变量指针,该变量指示了参数lpData所指向的缓冲区的数据大小,单位为字节;当函数RegQueryValueEx返回时,此函数指向的变量则包含了实际复制到缓冲区的字节数;