RegOpenKeyEx 函数打开一个指定键。
LONG RegOpenKeyEx( HKEY hKey, // 要打开主键的句柄 LPCTSTR lpSubKey, // 要打开子键的地址名字 DWORD ulOptions, // 保留 REGSAM samDesired, // 安全存取掩码 PHKEY phkResult // 要打开键句柄的地址);
参数
- hKey
- 句柄是一个当前打开的键或下列已确定的保留句柄值:
HKEY_CLASSES_ROOT
HKEY_CURRENT_CONFIG
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_USERS
Windows NT: HKEY_PERFORMANCE_DATA
Windows 95和Windows 98: HKEY_DYN_DATA
- lpSubKey
- 指向一个要打开子键的名字(以空字符结束的字符串)。如果这个参数为空或指向一个空字符串,函数将打开一个能被hKey 参数识别的新键的句柄。在这个语法中,函数将不会关闭先前打开的句柄。
- ulOptions
- 保留;必须是零。
- samDesired
- 为新键指定一个描述安全的存取掩码。这个参数可以由下列的值组合成而:
值 |
含意 |
KEY_ALL_ACCESS |
相当于KEY_QUERY_VALUE, KEY_ENUMERATE_SUB_KEYS, KEY_NOTIFY, KEY_CREATE_SUB_KEY, KEY_CREATE_LINK, KEY_SET_VALUE的组合。 |
KEY_CREATE_LINK |
允许新建符号连接。 |
KEY_CREATE_SUB_KEY |
允许新建子键。 |
KEY_ENUMERATE_SUB_KEYS |
允许列举子键。 |
KEY_EXECUTE |
允许读操作。 |
KEY_NOTIFY |
允许修改。 |
KEY_QUERY_VALUE |
允许查询子键数据。 |
KEY_READ |
相当于KEY_QUERY_VALUE,KEY_ENUMERATE_SUB_KEYS,KEY_NOTIFY的组合 |
KEY_SET_VALUE |
允许设置子键数据 |
KEY_WRITE |
相当于KEY_SET_VALUE和KEY_CREATE_SUB_KEY的组合。 |
- phkResult
- 指定一个变量来接收已打开键的句柄。当你对返回句柄不太长时,调用RegCloseKey函数关闭它。
返回值
如果函数取得成功,返回ERROR_SUCCESS。
如果函数调用失败,返回一个非零的错误代码(定义在WINERROR.H文件中)。你可以使用带有FORMAT_MESSAGE_FROM_SYSTEM标记的FormatMessage函数来获得一个错误的普通描述。
注意
与RegCreateKeyEx函数不同,如果在注册表中指定的键不存在RegOpenKeyEx函数不会新建指定键。
快速信息
Windows NT: 需要3.1或更高版本。
Windows: 需要Windows 95或更高版本。
Windows CE: 需要1.0或更高版本。
头文件: winreg.h。
输入库:advapi32.lib.
Unicode: Windows NT版本中作为Unicode和ANSI执行。