分类:
2008-10-14 14:54:46
RegCloseKey
函数状态: 正式函数 ,建设者:deane ,最新更新时间: 2004-3-25 17:48:26
函数功能描述:释放指定注册键的句柄
函数原型
LONG RegCloseKey(
HKEY hKey // 释放键的句柄
);
参数
hKey
[输入] 想要关闭的已经打开的键。
返回值
如果过程执行成功,返回值是 ERROR_SUCCESS。
如果功能失败,返回一个非零值,错误码在 Winerror.h 定义。可以使用 FormatMessage 函数 和
FORMAT_MESSAGE_FROM_SYSTEM 标记获得一个分类的错误描述。
备注
被关闭的句柄将不可以再使用,应为已经不再有效。
RegCloseKey 函数在返回以前不能执行必要的写操作;它能够保持几秒钟为缓存执行写入磁盘,如果一个应用程序必须要写入注册表到硬盘,应该使用 RegFlushKey、RegFlushKey。.
示例代码
//-- 转换基础键
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 CreateRegKey(PARAINFO painfo)
{
HKEY bKey;
HKEY hKey;
DWORD lpdwDisposition;
LONG retVal;
char BaseKey[512];
char SubKey[512];
int OpenState;
strcpy(BaseKey,painfo.BaseKey);
strcpy(SubKey,painfo.SubKey);
OpenState = painfo.RegState;
bKey = GetBaseRegKey(BaseKey);
retVal = RegCreateKeyEx( bKey,
SubKey,
NULL,
NULL,
REG_OPTION_NON_VOLATILE,
KEY_ALL_ACCESS,
NULL,
&hKey,
&lpdwDisposition);
if(retVal != ERROR_SUCCESS)
{
RegCloseKey(hKey); //-- 关闭句柄
return 1;
}
if(OpenState!= REG_STATE_OPEN)
{
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.
相关函数
本函数最新话题