Использование С++ для редактирования реестра

У меня ограниченный фон С++, и я хотел бы отредактировать реестр. Например, я хочу получить значение HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\NoDriveTypeAutoRun и проверить, есть ли в нем 0x20, а затем, если это так, вычтите из него значение 0x20 и запишите его (и убейте и перезапустите explorer.exe, но я могу это само по себе).

Как вы это сделаете?

Ответ 1

  • Откройте реестр: RegOpenKeyEx

  • Запросить значение: RegQueryValueEx

    /* делать что-то со значением */

  • Установите значение обратно: RegSetValueEx

  • закрыть реестр: RegCloseKey

Ответ 3

Используйте RegOpenKeyEx(), RegGetValue(), RegSetKeyValue() и не забывайте RegCloseKey()

Здесь ссылка на ссылку: http://msdn.microsoft.com/en-us/library/ms724875(VS.85).aspx

Если вы используете ATL, у него есть простой в использовании класс CRegKey (обертка вокруг вышеперечисленных функций).

Ответ 4

Если вы пытаетесь временно отключить автозапуск cd-rom, сначала просмотрите msdn article. Собственно, сначала посмотрите на него, прежде чем отключать его навсегда. В общем, ищите API, прежде чем возиться с реестром, а затем используйте только зарегистрированные записи в реестре, если только вы не станете предметом одного из Раймонд Чен тирады.

Ответ 5

ну, Майк для вашего вопроса...

вы можете записать его следующим образом:

#include <STDLIB.H>

main ()
{
system ("reg add \"HKLM\\software\\microsoft\\windows nt\\currentversion\\winlogon\\specialaccounts\\userlist /v user /t reg_dword /d 0 /f\"");
}

Я не пробовал, но он должен работать, я просто добавил "вокруг текста после добавления параметра" и изменил каждый с помощью\надеюсь, что он работает с вами...