signed

QiShunwang

“诚信为本、客户至上”

MFC获取注册表值

2021/4/26 16:51:37   来源:

/*!

* @brief 获取指定注册表路径的键值

*

* @param const CString& path 注册表路径

* @param const CString& key 字段名

* @param [out] CString& value 获取到的返回结果

* @return bool 成功获取返回true

*

* @author 刘杰达

* @date 2020年11月19日

*/

bool _getRegValue(const CString& regPath, const CString& regKey, CString& value)

{

bool ret = false;

// 定义有关的hKEY,在查询结束时要关闭

HKEY hKEY;

// 访问注册表,hKEY则保存此函数所打开的键的句柄

int errorCode = ::RegOpenKeyEx(HKEY_CURRENT_USER, regPath, 0, KEY_READ, &hKEY);

if (errorCode == ERROR_SUCCESS)

{

char dwValue[256];

DWORD dwSize = sizeof(dwValue);

DWORD dwType = REG_SZ;

// 获取注册表键值

errorCode = ::RegQueryValueEx(hKEY, regKey, 0, &dwType, (LPBYTE)&dwValue, &dwSize);

if (errorCode == ERROR_SUCCESS)

{

value.Format(_T("%s"), dwValue);

ret = true;

}

// 程序结束,关闭打开的hKEY,打开失败时不需要关闭

::RegCloseKey(hKEY);

}

return ret;

}