Usando o C ++ para editar o registro

Eu tenho um fundo limitado em c ++ e gostaria de editar o registro. Por exemplo, eu quero pegar o valor de HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\NoDriveTypeAutoRun e verificar se 0x20 está nele e, em seguida, se for, subtrair 0x20 do seu valor e gravá-lo de volta (e matar e reiniciar o explorer.exe, mas eu posso descobrir isso por conta própria).

Como você faria?

  • Abra o registro: RegOpenKeyEx

  • Consultar o valor: RegQueryValueEx

    / * faça algo com valor * /

  • Defina o valor de volta: RegSetValueEx

  • feche o registro: RegCloseKey

Use RegOpenKeyEx (), RegGetValue (), RegSetKeyValue () e não se esqueça de RegCloseKey ()

Aqui está um link para a referência: http://msdn.microsoft.com/en-us/library/ms724875(VS.85).aspx

Se você usa ATL, ele tem uma class CRegKey fácil de usar (um wrapper em torno das funções acima).

Se você está apenas tentando desativar temporariamente o autorun do cd-rom, dê uma olhada neste artigo do msdn primeiro. Na verdade, olhe primeiro antes de desativá-lo permanentemente. Em geral, procure uma API antes de mexer com o registro – e, em seguida, use apenas inputs de registro documentadas, a menos que você queira terminar como assunto de uma das reclamações de Raymond Chen.

bem, Mike pela sua pergunta …

você pode escrever da seguinte forma …

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

Eu não tentei, mas deveria funcionar, eu adicionei \ “em torno do texto após o parâmetro add, e mudei cada \ com um \ espero que funcione com você …