Использование C ++ для редактирования реестра - PullRequest
13 голосов
/ 14 мая 2009

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

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

Ответы [ 5 ]

32 голосов
/ 14 мая 2009
3 голосов
/ 14 мая 2009
2 голосов
/ 14 мая 2009

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

2 голосов
/ 14 мая 2009

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

Вот ссылка на ссылку: http://msdn.microsoft.com/en-us/library/ms724875(VS.85).aspx

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

1 голос
/ 28 декабря 2009

хорошо, Майк на твой вопрос ...

Вы можете написать это следующим образом ...

#include <STDLIB.H>

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

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

...