Проблемы с добавлением значения в ключ реестра - PullRequest
0 голосов
/ 26 ноября 2018

Я пытаюсь добавить значение ("UpdateSvc") в разделе реестра HKCU\Software\Microsoft\Windows\CurrentVersion\Run с использованием C ++.Используемый код:

bool regWrite(LPCSTR subkey, LPCSTR name, DWORD type, const char * value)
{
    HKEY key;

    if (RegCreateKeyA(HKEY_CURRENT_USER, subkey, &key) != ERROR_SUCCESS)
        return false;
    if (RegSetValueExA(key, name, NULL, type, (LPBYTE)value, strlen(value) * sizeof(char) + 1) != ERROR_SUCCESS)
        return false;
    if (RegCloseKey(key) != ERROR_SUCCESS)
        return false;
    return true;
}

int main()
{
    bool ret;
    ret = regWrite("Software\\Microsoft\\Windows\\CurrentVersion\\Run", "UpdateSvc", REG_SZ, "Test");
    printf("%d", ret);
    getchar();
    return 0;
}

Он печатает '1', но я не могу найти значение.Пробная проверка с помощью regedit, а также reg query HKCU\software\microsoft\windows\currentversion\run (включая /reg:32 и /reg:64 для хорошей меры).

То же самое происходит с

system("reg add HKCU\\software\\microsoft\\windows\\currentversion\\run /v UpdateSvc /t REG_SZ /d Test /f"; (что, я знаю, небезопасно, просто отладка).

Запуск 64-битной Visual Studio с правами администратора в 64-битной Windows 10. Пользователь, под которым я вошел, не является администратором.

Редактировать

@ Инспектабельный решил это.Значение было добавлено под кустом администратора, а не моим, поэтому его не было видно.

1 Ответ

0 голосов
/ 26 ноября 2018

Все функции реестра возвращают значения типа LSTATUS, указывающие, успешно они или нет.Если RegCreateKey терпит неудачу, RegSetValueEx в значении HKEY, очевидно, также будет неудачнымКроме того, если RegCloseKey завершится неудачно (маловероятно), то ожидающие записи не могут быть сброшены в реестр.

if(RegCreateKeyA(...) != ERROR_SUCCESS)
{
    // Handle error
}
if(RegSetValueExA(...) != ERROR_SUCCESS)
{
    // Handle error
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...