C++读取注册表

来源:互联网 发布:ubuntu流量监控悬浮窗 编辑:程序博客网 时间:2024/05/26 07:27

C++读取注册表:

#include <shlobj.h>#include <windows.h>#include <shellapi.h>void getRegeditValue(TCHAR* retValue){    HKEY hKEY;//定义有关的hKEY,在查询结束时要关闭    LPCTSTR data_Set = TEXT("Software\\WOW6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\HeyShow\\");    //访问注册表,hKEY则保存此函数所打开的键的句柄    if (ERROR_SUCCESS == ::RegOpenKeyEx(HKEY_LOCAL_MACHINE, data_Set, 0, KEY_READ, &hKEY))    {        DWORD dwSize = 0;        DWORD dwDataType = 0;        // 获取缓存的长度dwSize及类型dwDataType        ::RegQueryValueEx(hKEY, TEXT("DisplayIcon"), 0, &dwDataType, NULL, &dwSize);        if (REG_SZ == dwDataType)        {            //分配内存大小            wchar_t* lpValue = new wchar_t[dwSize];            memset(lpValue, 0, dwSize * sizeof(wchar_t));            //获取注册表中指定的键所对应的值            if (ERROR_SUCCESS == ::RegQueryValueEx(hKEY, TEXT("DisplayIcon"), 0, &dwDataType, (LPBYTE)lpValue, &dwSize))            {                //std::wstring wstrValue(lpValue);                scpy(retValue, (LPCTSTR)lpValue);            }            delete[] lpValue;        }        //程序结束,关闭打开的hKEY        ::RegCloseKey(hKEY);    }}
0 0