2012-01-11 19 views
26

Ho un percorso del Registro delle seguentimodificando il valore chiave di registro

HKEY_LOCAL_MACHINE\SOFTWARE\COMPANY\COMPFOLDER 

all'interno COMPFOLDER, ho un valore di stringa denominato "Deno" il cui valore è 0. Voglio cambiare il suo valore a 1 per codice ogni volta che eseguo il codice. Qualcuno può aiutarmi?

+4

Come ha fatto il valore * ottenere * in quella chiave di registro, in primo luogo? Presumo che tu abbia usato la classe ['Microsoft.Win32.Registry'] (http://msdn.microsoft.com/en-us/library/microsoft.win32.registry.aspx) per scriverlo, quindi dovresti usare stessa classe per * modificarlo * Che problemi hai avuto quando hai provato a fare questo? –

+0

Suppongo che abbia navigato nel registro, copiato il percorso ed è desideroso di creare un programma per apportare modifiche attraverso il codice. Solo un'ipotesi, ma è così che sono arrivato. Apprezzo la tua risposta Cody Gray. Ha risposto alla mia domanda in parte. – iDevJunkie

risposta

45

E 'stato un po' ho fatto hack REG, ma qualcosa di simile potrebbe funzionare:

RegistryKey myKey = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Company\\Compfolder", true); 
if(myKey != null) { 
    myKey.SetValue("Deno", "1", RegistryValueKind.String); 
    myKey.Close(); 
} 
+8

Dovresti chiamare 'myKey.Close()' dopo averlo usato. – Rotem

+1

Vero, chiudilo sempre per giocare al sicuro. ;) – Jontatas

+11

Bene, se vuoi giocare davvero sicuro, assicurati di 'myKey! = Null' prima di modificarlo;) – Rotem

8
using (RegistryKey key = regKeyRoot.OpenSubKey(KeyName, true)) //must dispose key or use "using" keyword 
    { 
     if (key != null) //must check for null key 
     { 
      key.SetValue(attribute, value); 
     } 
    } 
Problemi correlati