| 

.NET C# Java Javascript Exception

0
Ich habe ein Programm, das die Registry nach Einträgen sucht und diese in eine REG-Datei speichert. Das Programm soll diese Registryeinträge löschen und die REG-Datei soll als Backup dienen. Bisher gibts auch keine großen Probleme damit.
Nur wenn ich die REG-Datei importieren möchte, kommt die Fehlermeldung:
Fehler beim Zugriff auf die Registrierung

Jetzt weiß ich nicht mehr weiter. In meiner REG-Datei gibt es nur Schlüsselwerte vom Typ String. Mit anderen Typen wird das noch ne ganz andere Geschichte werden... aber erstmal nur String.
Was habe ich bisher versucht?

1) Mir kam die Idee, dass Werte, die ein \ oder ein " im Text haben, ja nicht einfach so gelesen werden können. Also schreibe ich dort \\ bzw. \" rein, damit das funktioniert.
Beispiel:
@="D:\\projects\\Installation"


Das hat leider auch nicht viel genutzt. Nächste Idee:

2) Es kann ja an den Rechten liegen. Also was mache ich? Ich starte REGEDIT als Administrator und importiere eben jene Datei. Folge: Obige Fehlermeldung.

3) Am Anfang jeder REG-Datei steht:
Windows Registry Editor Version 5.00

Daran sollte es auch nicht scheitern.

Was ich mir vielleicht überlegt habe, dass am Anfang jedes Keys
[HKEY_CLASSES_ROOT\\CLSID

steht. Also ich meine hier die beiden Zeichen \\
Aber auf der anderen Seite schreibe ja nicht ich die Werte da rein, sondern C# selber (Funktion: RegistryKey.ToString())

Hat jemand sonst noch eine Idee, wie man das Importieren zum Funktionieren bringen kann? Hab ich einen Fehler in der REG-Datei? Oder kann es an was ganz anderem liegen?
News:
02.09.2011
starki 603 1 8
2 Antworten
0
Exportiere mal einen Schlüssel oder Teilbaum von Hand und mit Deinem Programm, und vergleiche die beiden Ergebnisse mit einem Diff-Tool. Im Idealfall bringt Dich das schon auf die richtige Spur, ansonsten poste hier mal (-> Frage editieren) ein Stück aus beiden Dateien und die relevanten Teile deines Codes.
02.09.2011
Matthias Hlawatsch 13,2k 4 9
0
Die Lösung ist folgendermaßen:

Aus
[HKEY_CLASSES_ROOT\\CLSID


sollte

[HKEY_CLASSES_ROOT\CLSID


D.h. ein \ war einfach zuviel. Jetzt funktionierts problemlos :)
02.09.2011
starki 603 1 8
1
Und es fehlt natürlich noch die schließende Klammer ]
:-)
Metal-Frog 02.09.2011
@Metal-Frog: Ja das stimmt, aber ich hab ja nur hier den Anfang eines Keys reingeschrieben ... d.h. ich hab nur das Ende wegzensiert ;)
starki 09.09.2011

Stelle deine .net-Frage jetzt!
TOP TECHNOLOGIES CONSULTING GmbH