2012-01-11 12 views
26

Mam ścieżkę rejestru o następującejmodyfikując wartość klucza rejestru

HKEY_LOCAL_MACHINE\SOFTWARE\COMPANY\COMPFOLDER 

wewnątrz COMPFOLDER Mam wartość ciągu o nazwie „Deno”, którego wartość wynosi 0. życzę, aby zmienić jej wartość na 1 kodem za każdym razem, gdy wykonuję kod. Czy ktoś może mi pomóc?

+4

W jaki sposób wartość * się * w tym kluczu rejestru w pierwszej kolejności? Zakładam, że użyłeś klasy ['Microsoft.Win32.Registry'] (http://msdn.microsoft.com/en-us/library/microsoft.win32.registry.aspx) do napisania, więc powinieneś użyć ta sama klasa, aby * modyfikować * to. Jakie miałeś problemy, gdy próbowałeś to zrobić? –

+0

Założę się, że nawigował do rejestru, skopiował ścieżkę i pragnął stworzyć program, który wprowadziłby zmiany w kodzie. Tylko zgaduję, ale tak właśnie tu dotarłem. Doceniam twoją odpowiedź Cody Gray. Odpowiedział częściowo na moje pytanie. – iDevJunkie

Odpowiedz

45

to było, a ja nie sieka reg, ale coś takiego może działać:

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

Po użyciu należy wywołać 'myKey.Close()'. – Rotem

+1

To prawda, zawsze zamykaj, aby grać bezpiecznie. ;) – Jontatas

+11

Cóż, jeśli chcesz grać naprawdę bezpiecznie, upewnij się, że 'myKey! = Null' przed modyfikacją również;) – 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); 
     } 
    } 
Powiązane problemy