![]() |
Aus Registry auslesen
Hallo zusammen,
habe mal wieder ein Problem und hoffe jemand von euch kann mir weiterhelfen. Ich möchte aus meiner Registry Daten auslesen und diese dann in ein Memo schreiben. Ich kann im Moment jediglich Registry-Daten überschreiben oder verändern, habe jedoch keine Ahnung wie ich die Daten auslesen kann. Kann mir jemand helfen???? :gruebel: Thanks konoko :angel: |
Re: Aus Registry auslesen
Dann guck dir mal in der Hilfe die Methoden von
![]() |
Re: Aus Registry auslesen
Also ich hab's immer so gemacht:
Delphi-Quellcode:
uses
...,registry; ... var Form1: TForm1; reg: TRegistry; meinwert: string; meinint: integer; implementation ... reg := TRegistry.Create; reg.RootKey := HKEY_CURRENT_USER; reg.OpenKey('Software\MeinProject',true); meinwert := reg.ReadString('(Wert der ausgelesen werden soll)'); meinint := reg.ReadInteger('(Wert der ausgelesen werden soll)'); reg.free; |
Re: Aus Registry auslesen
Wo ist der Ressourcenschutzblock? Warum wird der Rückgabewert der Methode OpenKey nicht ausgewertet und wenn ich sowieso nur lesen will empfiehlt es sich die Registry nur lesend zu öffnen.
|
Re: Aus Registry auslesen
Merci für eure Antworten,
leider komme ich trotzdem nicht viel weiter... Denn mein Hauptprobelm im Moment ist, das ich nicht auf die Eigenschaften Zugreifen kann und ich weiss nicht genau wieso... :wall: Hier nur mal mein Code zum verständniss:
Delphi-Quellcode:
Reg := TRegistry.Create(KEY_READ);
try Reg.Rootkey := HKEY_LOCAL_MACHINE; if Reg.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Adobe Acrobat 5.0', True) then begin if reg.ValueExists('DisplayName') Then begin Programm := reg.ReadString('DisplayName'); Version := reg.ReadString('DisplayVersion'); reg.CloseKey; end; end; finally Reg.Free; end; Das Problem ist nun, dass er bei der zweiten IF-abfrage gar nicht in die Schlaufe rein geht, da er die Eigenschaft nicht finden kann. Warum er sie nicht findet ist mir nur noch nicht ganz klar. :gruebel: Habt Ihr vielleicht eine Idee??? Thanks xarida |
Re: Aus Registry auslesen
Gibt es den Schlüssel überhaupt? Mir kommt es etwas komisch vor, dass sich Adobe im Mircosoft\Windows-Schlüssekl eintragen sollte. Ich habe den Adobe Reader 7.0 installiert und da finde ich bei mir nichts. Bei mir steht der hier: HKEY_CURRENT_USER\Software\Adobe\Acrobat Reader. Allerdings deine Schlüssel gibt es dort auch nicht.
|
Re: Aus Registry auslesen
Doch der Schlüssel ist OK, das habe ich gleich zuerst mehrfach überprüft.
Thanks konoko :angel: |
Re: Aus Registry auslesen
An welcher stelle tritt der Fehler denn genau auf???
|
Re: Aus Registry auslesen
Eigentlich tritt er wie schon gesagt bei der zweiten IF-Abfrage auf:
Delphi-Quellcode:
und zwar dadurch, dass der die Eigenschaft 'DisplayName' nicht finden kann, obwohl sie vorhanden ist.
if reg.ValueExists('DisplayName') Then
begin |
Re: Aus Registry auslesen
Vielleicht hast du irgendwo einen Schreibfehler? Wenn das alles nichts bringt, hab' hier in der
![]() |
Re: Aus Registry auslesen
Versuch mal
Delphi-Quellcode:
statt
if Reg.OpenKey('\SOFTWARE\Microsoft\Windows\CurrentVersion\Adobe Acrobat 5.0', True) then
Delphi-Quellcode:
*edit*
if Reg.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Adobe Acrobat 5.0', True) then
bzw. versuch das ganze mal mit CanCreate = False. Denn du willst ja lesen und nicht schreiben. Daher ist es Blödsinn, den Key zu erstellen, wenn er nicht vorhanden ist. Dann merkste auch, ob es den Key überhaupt gab oder nicht. |
Re: Aus Registry auslesen
Dein Problem ist glaube auch, dass du OpenKey als zweiten Parameter ein true übergibts. Das bedeutet, dass er den Schlüssel anlegt, wenn er ihn nicht findet. Ich glaube kaum, dass das Sinn und Zweck ist. Dies ist vermutlich auch der Grund, warum der Schlüssel existiert an dieser Stelle. Allerdings sollten keine Werte drin stehen.
|
Re: Aus Registry auslesen
Zitat:
|
Re: Aus Registry auslesen
oder noch besser und sicherer
Delphi-Quellcode:
;)
Reg.OpenKeyReadOnly(....);
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:02 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz