VC 读取注册表键值

输入:注册表完整路径,如:HKEY_LOCAL_MACHINE\Software\Microsoft\ABC\dwPoints

输出:键值(如dwPoints对应的值)

CString GetKeyValue(CString bstrRegPath)
{
CString strPath = _T("");

CString path = bstrRegPath;

long length = path.GetLength();

int index = path.Find(_T('\\'));
if (index == -1)
{
return L"";
}

CString registryType = path.Left(index);

if (length - index - 1 < 0)
{
return L"";
}
CString fullPath = path.Right(length - index - 1);

length = fullPath.GetLength();
index = fullPath.ReverseFind(_T('\\'));
if (index == -1)
{
return L"";
}

CString pathDir = fullPath.Left(index);

if (length - index - 1 < 0)
{
return L"";
}
CString keyValue = fullPath.Right(length - index -1);

HKEY hkey;

DWORD dwSize = MAX_PATH;
TCHAR string[MAX_PATH];

HKEY registryConstType;

if (_tcscmp(registryType,L"HKEY_CLASSES_ROOT") == 0)
{
registryConstType = HKEY_CLASSES_ROOT;
}
else if (_tcscmp(registryType,L"HKEY_CURRENT_USER") == 0)
{
registryConstType = HKEY_CURRENT_USER;
}
else if (_tcscmp(registryType,L"HKEY_LOCAL_MACHINE") == 0)
{
registryConstType = HKEY_LOCAL_MACHINE;
}
else if (_tcscmp(registryType,L"HKEY_USERS") == 0)
{
registryConstType = HKEY_USERS;
}
else
{
return L"";
}

LONG lRet = RegOpenKeyEx(registryConstType,pathDir,0,KEY_READ,&hkey);
if(lRet != ERROR_SUCCESS)
{
return L"";
}

lRet = RegQueryValueEx(hkey, keyValue, NULL, REG_NONE,(LPBYTE)string,&dwSize);

if(lRet != ERROR_SUCCESS)
{
return L"";
}
else
{
strPath = string;

return strPath;
}
}

转载于:https://www.cnblogs.com/yibinpan/archive/2013/04/28/3050028.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值