RegOpenKeyEx,是計算機用語,用於打開一個指定的註冊表鍵。
基本介紹
- 中文名:RegOpenKeyEx
- 返回值:ERROR_SUCCESS
- 原型:LONG RegOpenKeyEx
- 功能描述:打開一個指定的註冊表鍵
相關介紹,功能描述,原型,參數,返回值,示例代碼,
相關介紹
功能描述
RegOpenKeyEx()
函式功能描述:打開一個指定的註冊表鍵
原型
LONG RegOpenKeyEx( HKEY hKey, // 需要打開的主鍵的名稱 LPCTSTR lpSubKey, //需要打開的子鍵的名稱 DWORD ulOptions, // 保留,設為0 REGSAM samDesired, // 安全訪問標記,也就是許可權 PHKEY phkResult // 得到的將要打開鍵的句柄)
參數
hKey
[輸入] 當前打開或者以下預定義的鍵。
HKEY_CLASSES_ROOT
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_USERS
HKEY_CURRENT_CONFIG
Windows NT/2000/XP: HKEY_PERFORMANCE_DATAWindows 95/98/Me: HKEY_DYN_DATA
lpSubKey
[輸入] 以null結尾的字元串指針,包含要打開的註冊表子項的名稱。如果參數設定為NULL 或者指向一個空字元串,該函式將打開由hKey參數標識的鍵的新句柄。這種情況下,函式不會關閉先前已經打開的句柄。
ulOptions
保留,必須設定為 0
samDesired
[輸入] 對指定鍵希望得到的訪問許可權的訪問標記。 這個參數可以使下列值的聯合。
值 Meaning
phkResult
[輸出] 指向一個接收到打開的鍵的句柄的變數的指針。當您不再需要返回的句柄時,調用RegCloseKey函式來關閉它。
備註
不像 RegCreateKeyEx 函式,當指定鍵不存在 RegOpenKeyEx函式不創建新鍵。
Windows 95/98/Me: 註冊表子鍵或值名稱不能超過255字元。
Windows 95/98/Me: RegOpenKeyExW 被 Microsoft Layer for Unicode。 想要使用, 你必須在你的應用程式中包含某些檔案。
返回值
返回值 如果函式調用成功,則返回0(ERROR_SUCCESS)。否則,返回值為檔案WINERROR.h中定義的一個非零的錯誤代碼。
示例代碼
//-- 轉換基礎鍵HKEY GetBaseRegKey(char* keystr){ HKEY hKey; if(strcmp(keystr,"HKEY_CLASSES_ROOT")==0) hKey=HKEY_CLASSES_ROOT; if(strcmp(keystr,"HKEY_CURRENT_CONFIG")==0) hKey=HKEY_CURRENT_CONFIG; if(strcmp(keystr,"HKEY_CURRENT_USER")==0) hKey=HKEY_CURRENT_USER; if(strcmp(keystr,"HKEY_LOCAL_MACHINE")==0) hKey=HKEY_LOCAL_MACHINE; if(strcmp(keystr,"HKEY_USERS")==0) hKey=HKEY_USERS; return hKey;}// 刪除一個鍵值int RegDelValue(){ HKEY bKey,hKey; LONG retVal; char BaseKey[512]; char SubKey[512]; char SubKeyValueName[512]; strcpy(BaseKey,"HKEY_CURRENT_USER"); strcpy(SubKey,"Control Panel\\Desktop"); strcpy(SubKeyValueName,"ShowMenuDelay"); bKey = GetBaseRegKey(BaseKey); retVal = RegOpenKeyEx(bKey,SubKey,0,KEY_ALL_ACCESS,&hKey); //-- 打開子鍵 if (retVal != ERROR_SUCCESS) return 1; retVal = RegDeleteValue(hKey,(LPCTSTR)SubKeyValueName); if(retVal !=ERROR_SUCCESS) { RegCloseKey(hKey); return 2; } RegCloseKey(hKey); return 0;}
Windows NT/2000/XP: 包含在 Windows NT 3.1 以後版本中。
Windows 95/98/Me: 包含在 Windows 95 以後版本中。
Header: Winreg.h; 包含在 Windows.h.
Library: 使用 Advapi32.lib.
Unicode: Unicode 和 ANSI 版本在 Windows NT/2000/XP 中支持,也被 Microsoft Layer for Unicode支持