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執行。