Entwickler-Ecke
Dateizugriff - Probleme beim Auslesen der Registry unter XP64
Siluro - Di 21.10.08 13:00
Titel: Probleme beim Auslesen der Registry unter XP64
Hi,
hab ein Problem beim Auslesen von Regestrierungsschlüsseln bzw. -werten die ich selbst erstellt hab. Ich komm einfach nicht dahinter wo das Problem liegt. Hier mal mein Code:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| procedure TForm1.Button1Click(Sender: TObject); begin reg := TRegIniFile.Create;
reg.RootKey := HKEY_LOCAL_MACHINE;
if reg.OpenKeyReadOnly('\SOFTWARE\Microsoft') then begin showmessage(reg.ReadString('.NETFramework', 'InstallRoot', 'C:\')); end;
if reg.OpenKeyReadOnly('\SOFTWARE\Test') then begin showmessage(reg.ReadString('test2', 'wert', '0')); end; end; |
Hat vielleicht jemand einen Vorschlag was man da probieren könnte. Danke schonmal im Vorraus und Grüße
Björn
Im Anhang nochmal ein Screenshot von der Regestry
Xentar - Di 21.10.08 13:17
Ich könnte mir vorstellen, dass das 2. OpenKey im Bezug zum ersten gesucht wird (also quasi ein Unter"ordner" davon), dort aber nicht gefunden wird.
Entweder vorher CloseKey, oder das erste OpenKey rausnehmen.
matze - Di 21.10.08 13:18
Beim zweiten Mal OpenKeyReadOnly wird nicht wieder von der Wurzel HKEY_LOCAL_MACHINE ausgegangen, sondern von dem zuvor geöffneten Zweig.
Siluro - Di 21.10.08 13:40
Danke für die schnellen Antworten, aber das ist nicht das Problem. Ich hab immer entweder das eine oder das andere Auskommentiert, habs jetzt nur wegen der besseren Lesbarkeit beides aktiv.
Björn
matze - Di 21.10.08 14:08
äh mal ne Frage: Wieso denn eigentlich TRegIniFile und nicht TRegistry?
Siluro - Di 21.10.08 14:13
Arbeite an einer Software aus meinem Betrieb und da wurde halt TRegIniFile verwendet. Der von mir gepostete Code war zum Test gedacht, weil die Software nichtmehr richtig läuft seit dem ich einen neuen Arbeitsrechner mit XP64 hab. Mich wundert halt nur, dass es mit Einträgen die vom System erzeugt wurden funktioniert und mit einträgen die ich in die Registry schreibe nicht.
Björn
EDIT: Das gleiche Problem gibts auch bei TRegistry
LÖSUNG:
Die Lösung ist ganz einfach. Es ist garkein Problem mit dem Auslesen der Registry. Bei XP64 gibt es unter "SOFTWARE" den Schlüssel "Wow6432Node" in dem die Einträge aus "SOFTWARE" stehen. Das Heisst wenn ich unter Delphi "HKEY_LOCAL_MACHINE\SOFTWARE\..." auslese, wird eigentlich "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\..." aus der Registry ausgelesen. Trotzdem danke für eure Hilfe.
Gruß
Björn
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!