RegOpenKeyEx

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支持

相關詞條

熱門詞條

聯絡我們