2012-01-11 17 views
26

Tengo una ruta de registro de las siguientesmodificar el valor de clave de registro

HKEY_LOCAL_MACHINE\SOFTWARE\COMPANY\COMPFOLDER 

dentro COMPFOLDER, que tienen un valor de cadena llamado "Deno" cuyo valor es 0. deseo cambiar su valor en 1 por código cada vez que ejecuto el código. ¿Alguien puede ayudarme?

+4

¿Cómo surgió el valor * conseguir * en esa clave de registro en el primer lugar? Supongo que usaste la clase ['Microsoft.Win32.Registry'] (http://msdn.microsoft.com/en-us/library/microsoft.win32.registry.aspx) para escribirla, por lo que deberías usar misma clase para * modificar * it. ¿Qué problemas tenías cuando intentaste hacer esto? –

+0

Supongo que navegó hasta el registro, copió la ruta y desea crear un programa para realizar cambios a través del código ... Solo una suposición, pero así es como llegué aquí. Agradezco tu respuesta, Cody Gray. Respondió a mi pregunta en parte. – iDevJunkie

Respuesta

45

Ha sido un tiempo me di hacks reg, pero algo como esto podría funcionar:

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

Debería llamar a 'myKey.Close()' después de usarlo. – Rotem

+1

Es cierto, siempre ciérrelo para jugar seguro. ;) – Jontatas

+11

Bueno, si quieres jugar realmente seguro, asegúrate de que 'myKey! = Null' antes de modificarlo también;) – 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); 
     } 
    } 
Cuestiones relacionadas