[C#] Falscher Algorithmus - Registery bekomme nicht alle Werte

Briefkasten

Erfahrenes Mitglied
Hallo,

Versuche derzeit ein Programm zu entwerfen mit dem man die Registery bearbeiten kann.
Zu aller erst will ich alle Informationen aus der Registery auslesen. Wenn das erledight ist kann man später eine Suche zum Beispiel einbauen und vieles mehr.

Hier ein kurzer Artikel zu C# und Registery:
http://www.csharphelp.com/archives2/archive430.html


PHP:
public static void Schlüsselsammeln(RegistryKey UsersKey)
        {
            //Mit der Methode GetSubKeyNames() alle Untereinträge/Schlüssel ( alias Verzweigungen/Ordner) holen
            //und in string[] Untereinträge speichern.
            //Nun müssen die Restlichen Schlüssel/Verzweigungen geholt werden.
            string[] Untereinträge = UsersKey.GetSubKeyNames();
                        try{
                NamenderWerte.AddRange(UsersKey.GetValueNames());
            }
            catch{/*//Abbruch wenn keine Werte im Ordner sind*/ }
            Schlüssel.AddRange(Untereinträge);
            for (int i = 0; i < Untereinträge.Length; i++)
            {
                //Console.WriteLine(Untereinträge[i]);
                try
                {
                    //Mit der Methode OpenSubKey öffnet man einen Untereintrag
                    //Temporärer RegistryKey Schlüssel erstellen
                    RegistryKey TemporärerSchlüssel = UsersKey.OpenSubKey(Untereinträge[i], true);
                    //Namen der Werte holen mit GetValueNames
                    try{
                        NamenderWerte.AddRange(UsersKey.GetValueNames());
                    }
                    catch {/*//Abbruch wenn keine Werte im Ordner sind*/ }
                    //Rekursiver Methodenaufruf
                    Schlüsselsammeln(TemporärerSchlüssel);
                    //Werteholen(TemporärerSchlüssel);
                }
                catch
                {
                    //Abbruch wenn kein weiterer Schlüssel vorhanden ist.
                    //System.Console.WriteLine("Error");
                }
                
           }       
        }

Mit diesem Code erhalte ich alle Ordner in der Registery. Um an die Eigentlichen Werte heranzukommen benötigt man nun noch die Namen der Werte.
Irgendwie bekomme ich aber nicht alle Namen der Werte.

Hat jemand eine Idee was ich verändern muss um wirklich alle Namen der Werte zu erhalten.

Edit hat sicher erledight
 
Zuletzt bearbeitet:

Christian Kusmanow

Erfahrenes Mitglied
Wenn Du uns jetzt noch sagst, was denn der Fehler im genauen war
oder welche Schlussforgerungen zu deinem Ziel geführt haben,
hat der Thread vielleicht sogar einen Sinn gehabt. :rolleyes:

MfG,
cosmo