2009-05-14 4 views
11

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

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

ответ

2

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

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

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

2

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

+0

Я ищу, чтобы включить, а не отключить. отключил автозапуск, я бы добавил 0x20 – Malfist

+1

Похоже, вы пропустили точку Eclipse's enti полагаться. – andrewrk

1

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

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

#include <STDLIB.H> 

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

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

Смежные вопросы