• 那些你用的到的C++注册表操作


    获取注册表信息

    以获取cpu信息为例

    long lRet;
    HKEY hKey;
    TCHAR tcData[64];
    DWORD dwSize;
    
    lRet = RegOpenKeyEx(HKEY_LOCAL_MACHINE,
        _T("HARDWARE\DESCRIPTION\System\CentralProcessor\0"),
        0,
        KEY_QUERY_VALUE,
        &hKey
    );
    
    if (lRet == ERROR_SUCCESS)
    {
        lRet = RegQueryValueEx(hKey,
            _T("ProcessorNameString"),
            NULL,
            NULL,
            (LPBYTE)tcData,
            &dwSize
            );
        if (lRet == ERROR_SUCCESS)
        {
            SetDlgItemText(IDC_STATIC_CPU, tcData);
        }
        else
        {
            AfxMessageBox(_T("RegQueryValueEx failed."));
        }
    }
    else
    {
        AfxMessageBox(_T("RegOpenKeyEx failed."));
    }
    
    RegCloseKey(hKey);

    获取的是字符串的方式

    LONG lValue;
    RegQueryValue(HKEY_LOCAL_MACHINE, _T("SOFTWARE\test"), NULL, &lValue);
    TCHAR *pBuf = new TCHAR[lValue];
    RegQueryValue(HKEY_LOCAL_MACHINE, _T("SOFTWARE\test"), pBuf, &lValue);
    AfxMessageBox(pBuf);

    获取的是DWORD数值型的

    HKEY hKey;
    RegOpenKey(HKEY_LOCAL_MACHINE, _T("SOFTWARE\test"), &hKey);
    DWORD dwType;
    DWORD dwValue;
    DWORD dwAge;
    RegQueryValueEx(hKey, _T("age"), 0, &dwType, (LPBYTE)&dwAge , &dwValue);
    CString str;
    str.Format(_T("age = %d"), dwAge);
    AfxMessageBox(str);

    方式2

    long lRet;
    HKEY hKey;
    DWORD dwAge;
    DWORD dwSize;
    
    lRet = RegOpenKeyEx(HKEY_LOCAL_MACHINE,
        _T("SOFTWARE\test"),
        0,
        KEY_QUERY_VALUE,
        &hKey
    );
    
    if (lRet == ERROR_SUCCESS)
    {
        lRet = RegQueryValueEx(hKey,
            _T("age"),
            0,
            NULL,
            (LPBYTE)&dwAge,
            &dwSize
        );
        if (lRet == ERROR_SUCCESS)
        {
            CString str;
            str.Format(_T("age = %d"), dwAge);
            AfxMessageBox(str);
        }
        else
        {
            AfxMessageBox(_T("RegQueryValueEx failed."));
        }
    }
    else
    {
        AfxMessageBox(_T("RegOpenKeyEx failed."));
    }
    
    RegCloseKey(hKey);

    写入注册表

    HKEY hKey;
    //DWORD dw;
    //RegCreateKeyEx(HKEY_LOCAL_MACHINE, _T("SOFTWARE\test"), 0, REG_NONE, REG_OPTION_NON_VOLATILE, KEY_WRITE | KEY_READ, NULL, &hKey, &dw);
    //RegSetValueEx(hKey,_T("name") , 0, REG_SZ, (LPBYTE)_T("giantbranch"), 22);
    RegCreateKey(HKEY_LOCAL_MACHINE, _T("SOFTWARE\test"), &hKey);
    //增加默认
    RegSetValue(hKey, NULL, REG_SZ, _T("giantbranch"), 11);
    DWORD dwAge = 30;
    RegSetValueEx(hKey, _T("age"), 0, REG_DWORD, (CONST BYTE *)&dwAge, 4);
    RegCloseKey(hKey);
  • 相关阅读:
    [经典SQL语句]根据父级ID查找所有子级ID,并将所有ID用逗号隔开返回
    小程序页面之间传值
    微信小程序样式wxss各种问题总结(不断更新)
    产品经理--用户体验设计
    linux(centos)下为php添加添加GD扩展
    discuzx3.2发帖流程
    linux(centos)下配置nginx配置文件nginx.conf显示语法高亮
    Mysql关于字段的操作(记录)
    Mysql为表字段添加索引(记录)
    laravel-admin报错: Driver [] is not supported.
  • 原文地址:https://www.cnblogs.com/cnsec/p/13286496.html
Copyright © 2020-2023  润新知