Почему не код автозагрузки через реестр C++?

void AutoRun()
    {
        char arr[MAX_PATH] = { };
        GetModuleFileName(NULL, (LPWSTR)arr, MAX_PATH);
        
        HKEY hKey;

        if (RegCreateKeyEx(HKEY_CURRENT_USER, L"Software\\Microsoft\\Windows\\CurrentVersion\\Run", 0, NULL, 0, KEY_ALL_ACCESS, NULL, &hKey, NULL) == ERROR_SUCCESS)
        {
            if (RegSetValueEx(hKey, L"svchost", NULL, REG_SZ, (LPBYTE)arr, (sizeof(arr) + 1)) == ERROR_SUCCESS)
            {
                RegCloseKey(hKey);
            }
            return;
        }
    }

При выполнении функции происходит добавление в автозагрузку на состояние отключено.5fe35cbb6e74c691919722.png
  • Вопрос задан
  • 148 просмотров
Пригласить эксперта
Ответы на вопрос 2
@galaxy
У вас код не соответствует скриншоту (имя другое).
Посмотрите через regedit, что записывается в реестр.
Обработки ошибок у вас не видно. Функции обе ERROR_SUCCESS возвращают?
Ответ написан
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Проверьте ветку
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\StartupApproved\Run
Если там есть соответствующая запись и её значение начинается с 02, то запуск разрешён.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы