C# Registry Schlüssel löschen

  • C#
  • .NET (FX) 4.5–4.8

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von Thomas Jason.

    C# Registry Schlüssel löschen

    Hallo,

    Ich versuche einen Schlüssel in der Registry zu löschen.
    Allerdings gelingt mit dies nicht. Der Schlüssel wird nicht gelöscht.
    Was mache ich falsch?

    Vielen Dank im Voraus!

    C#-Quellcode

    1. RegistryKey registrykeyHKLM = Registry.LocalMachine;
    2. string keyPath = @"\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\{031E4825-7B94-4dc3-B131-E946B44C8DD5}";
    3. try
    4. {
    5. registrykeyHKLM.DeleteValue(keyPath);
    6. registrykeyHKLM.Close();
    7. }
    8. catch (Exception ex)
    9. {
    10. MessageBox.Show("Beim Löschen des Reg Keys ist ein Fehler aufgetreten: " + "\n" + "\n" + ex);
    11. }
    12. finally
    13. {
    14. MessageBox.Show("Der Reg Key wurde erfolgreich gelöscht");
    15. }
    Ja das Programm hat Admin-Rechte.

    Ich habe den Code umgeschrieben, damit der Schlüssel vernünftig geöffnet wird, und die Schreibberechtigung vorhanden ist.

    C#-Quellcode

    1. try
    2. {
    3. RegistryKey Key = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace", RegistryKeyPermissionCheck.ReadWriteSubTree);
    4. Key.DeleteSubKey("{031E4825-7B94-4dc3-B131-E946B44C8DD5}", true);
    5. }
    6. catch (Exception ex)
    7. {
    8. MessageBox.Show("Beim Löschen des Reg Keys ist ein Fehler aufgetreten: " + "\n" + "\n" + ex);
    9. }
    10. finally
    11. {
    12. MessageBox.Show("Der Reg Key wurde erfolgreich gelöscht");
    13. }


    Nur jetzt bekomme ich diesen Fehler:



    Weshalb kann der Unterschlüssel "{031E4825-7B94-4dc3-B131-E946B44C8DD5}" nicht gefunden werden?
    Der Schlüssel existiert aber in der Registry.
    @Thomas Jason Das geht problemlos.
    Wahrscheinlich ist dieser Aufruf bereits der 2. Aufruf nach dem Aufruf, der den Schlüssel gelöscht hat.
    Ich hab mir zunächst eine Sicherheitskopie des Registryeintrages gemacht.
    Hier beide Meldungen:
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!