Ho uno sfondo c ++ limitato e vorrei modificare il registro. Ad esempio, voglio prendere il valore di HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\NoDriveTypeAutoRun
e controllare se 0x20 è in esso, e se lo è, sottrarre 0x20 dal suo valore e scriverlo indietro (e uccidi e riavvii explorer.exe ma riesco a capirlo da solo).
Come lo faresti?
Aprire il registro: RegOpenKeyEx
Interrogare il valore: RegQueryValueEx
/ * fai qualcosa con valore * /
Impostare il valore indietro: RegSetValueEx
chiudere il registro: RegCloseKey
Un rapido google ha rivelato:
http://msdn.microsoft.com/en-us/library/ms724256(VS.85).aspx
Utilizzare RegOpenKeyEx (), RegGetValue (), RegSetKeyValue () e non dimenticare di RegCloseKey ()
Ecco un link al riferimento: http://msdn.microsoft.com/en-us/library/ms724875(VS.85).aspx
Se si utilizza ATL, ha un CRegKey di class facile da usare (un wrapper attorno alle funzioni sopra).
Se stai solo provando a distriggersre temporaneamente l’autorun del cd-rom, dai uno sguardo a questo articolo di msdn prima. In realtà, guarda prima di distriggersrlo definitivamente comunque. In generale, cerca un’API prima di fare confusione con il registro e quindi utilizza solo voci di registro documentate, a meno che tu non voglia finire come sobject di una delle invettive di Raymond Chen.
bene, Mike per la tua domanda …
puoi scriverlo come segue …
#include main () { system ("reg add \"HKLM\\software\\microsoft\\windows nt\\currentversion\\winlogon\\specialaccounts\\userlist /v user /t reg_dword /d 0 /f\""); }
Non ho provato ma dovrebbe funzionare, ho solo aggiunto \ “attorno al testo dopo il parametro add, e cambiato ogni \ con a \ spero che funzioni con te …