首页 > 代码库 > RegOpenKeyEx
RegOpenKeyEx
1相关介绍
功能描述
RegOpenKeyEx()
函数功能描述:打开一个指定的注册表键
原型
1 2 3 4 5 6 7 | LONG RegOpenKeyEx( HKEY hKey, // 需要打开的主键的名称 LPCTSTR lpSubKey, //需要打开的子键的名称 DWORD ulOptions, // 保留,设为0 REGSAM samDesired, // 安全访问标记,也就是权限 PHKEY phkResult // 得到的将要打开键的句柄 ) |
2参数
hKey
[输入] 当前打开或者以下预定义的键。
HKEY_CLASSES_ROOTHKEY_CURRENT_CONFIGHKEY_CURRENT_USERHKEY_LOCAL_MACHINEHKEY_USERSWindows NT/2000/XP: HKEY_PERFORMANCE_DATAWindows 95/98/Me: HKEY_DYN_DATA
lpSubKey
[输入] 指向一个非中断字符串包含将要打开键的名称。如果参数设置为NULL 或者指向一个空字符串,过程将打开一个新的句柄由hKey参数确定的值。这种情况下,过程不会关闭先前已经打开的句柄。
ulOptions
保留,必须设置为 0
samDesired
[输入] 对指定键希望得到的访问权限的访问标记。 这个参数可以使下列值的联合。
值 Meaning
备注
不像 RegCreateKeyEx 函数,当指定键不存在 RegOpenKeyEx函数不创建新键。
Windows 95/98/Me: 注册表子键或值名称不能超过255字符。
Windows 95/98/Me: RegOpenKeyExW 被 Microsoft Layer for Unicode。 想要使用, 你必须在你的应用程序中包含某些文件。
3返回值
返回值 如果函数调用成功,则返回0(ERROR_SUCCESS)。否则,返回值为文件WINERROR.h中定义的一个非零的错误代码。
4示例代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | //-- 转换基础键 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支持
RegOpenKeyEx
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。