RegOpenKeyEx 函數(shù)打開一個(gè)指定鍵。
LONG RegOpenKeyEx( HKEY hKey, // 要打開主鍵的句柄 LPCTSTR lpSubKey, // 要打開子鍵的地址名字 DWORD ulOptions, // 保留 REGSAM samDesired, // 安全存取掩碼 PHKEY phkResult // 要打開鍵句柄的地址);
參數(shù)
- hKey
- 句柄是一個(gè)當(dāng)前打開的鍵或下列已確定的保留句柄值:
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
- 指向一個(gè)要打開子鍵的名字(以空字符結(jié)束的字符串)。如果這個(gè)參數(shù)為空或指向一個(gè)空字符串,函數(shù)將打開一個(gè)能被hKey 參數(shù)識(shí)別的新鍵的句柄。在這個(gè)語(yǔ)法中,函數(shù)將不會(huì)關(guān)閉先前打開的句柄。
- ulOptions
- 保留;必須是零。
- samDesired
- 為新鍵指定一個(gè)描述安全的存取掩碼。這個(gè)參數(shù)可以由下列的值組合成而:
值 |
含意 |
KEY_ALL_ACCESS |
相當(dāng)于KEY_QUERY_VALUE, KEY_ENUMERATE_SUB_KEYS, KEY_NOTIFY, KEY_CREATE_SUB_KEY, KEY_CREATE_LINK, KEY_SET_VALUE的組合。 |
KEY_CREATE_LINK |
允許新建符號(hào)連接。 |
KEY_CREATE_SUB_KEY |
允許新建子鍵。 |
KEY_ENUMERATE_SUB_KEYS |
允許列舉子鍵。 |
KEY_EXECUTE |
允許讀操作。 |
KEY_NOTIFY |
允許修改。 |
KEY_QUERY_VALUE |
允許查詢子鍵數(shù)據(jù)。 |
KEY_READ |
相當(dāng)于KEY_QUERY_VALUE,KEY_ENUMERATE_SUB_KEYS,KEY_NOTIFY的組合 |
KEY_SET_VALUE |
允許設(shè)置子鍵數(shù)據(jù) |
KEY_WRITE |
相當(dāng)于KEY_SET_VALUE和KEY_CREATE_SUB_KEY的組合。 |
- phkResult
- 指定一個(gè)變量來(lái)接收已打開鍵的句柄。當(dāng)你對(duì)返回句柄不太長(zhǎng)時(shí),調(diào)用RegCloseKey函數(shù)關(guān)閉它。
返回值
如果函數(shù)取得成功,返回ERROR_SUCCESS。
如果函數(shù)調(diào)用失敗,返回一個(gè)非零的錯(cuò)誤代碼(定義在WINERROR.H文件中)。你可以使用帶有FORMAT_MESSAGE_FROM_SYSTEM標(biāo)記的FormatMessage函數(shù)來(lái)獲得一個(gè)錯(cuò)誤的普通描述。
注意
與RegCreateKeyEx函數(shù)不同,如果在注冊(cè)表中指定的鍵不存在RegOpenKeyEx函數(shù)不會(huì)新建指定鍵。
快速信息
Windows NT: 需要3.1或更高版本。
Windows: 需要Windows 95或更高版本。
Windows CE: 需要1.0或更高版本。
頭文件: winreg.h。
輸入庫(kù):advapi32.lib.
Unicode: Windows NT版本中作為Unicode和ANSI執(zhí)行。