RegistryHelper::writeMultiValues

0 0 2025-05-29 本文地址:http://www.pnpon.com/fun/detail-20.html
void RegistryHelper::writeMultiValue(wstring key, wstring valuename, vector<wstring> values)
{
    HKEY keyHandle = openKey(key, KEY_SET_VALUE | KEY_WOW64_64KEY);

    size_t size = 1;
    for (wstring value : values)
        size += value.size() + 1;

    wchar_t* data = new wchar_t[size];
    size_t offset = 0;
    for (wstring value : values)
    {
        value._Copy_s(data + offset, size * sizeof(wchar_t), value.size());
        offset += value.size();
        data[offset++] = L'\0';
    }
    data[offset] = L'\0';

    LSTATUS status = RegSetValueExW(keyHandle, valuename.c_str(), 0, REG_MULTI_SZ, (const BYTE*)data, (DWORD)(size * sizeof(wchar_t)));

    delete data;

    RegCloseKey(keyHandle);

    if (status != ERROR_SUCCESS)
        throw RegistryException(L"Error while writing to registry value " + key + L"\\" + valuename + L": " + StringHelper::getSystemErrorString(status));
}
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

您的支持,是我们前进的动力!