![]() |
Wert aus der Registry lesen
Hi Leute,
ich habe ein kleines Problem und zwar muss ich einen Wert aus der Registry auslesen. Wie das funktioniert weiß ich, jedoch ist es so, dass der Wert den ich auslesen will, keinen Namen besitzt.
Delphi-Quellcode:
Der Funktion .ReadString(''), muss ich den Valuenamen übergeben. In dem bestimmten REgistryeintrag ist jedoch nur: HKEY_CLASSES_ROOT\acrobat\DefaultIcon\ vorhanden und unter Valuenamen 'ab(Standard)', der aber nicht als Valuenamen verwendet wird. Wie kann diesen Wert nun auslesen?
procedure TForm2.FormCreate(Sender: TObject);
var registry_val: TRegistry; Key : String; Key_Val : String; begin registry_val := TRegistry.Create(); Key := 'HKEY_CLASSES_ROOT\acrobat\DefaultIcon'; Key_Val := TStrings.Create; try if registry_val.OpenKeyReadOnly(Key) then begin Key_Val := registry_val.ReadString(''); registry_val.CloseKey; end; finally FreeAndNil(registry_val); end; end; Danke für Eure Hilfe. Grüße xthing |
Re: Wert aus der Registry lesen
Hi xthing! Ich hoffe, ich habe deine Frage so richtig verstanden: Der Wert "(Standard)" in der Registry ist nur ein Anzeigewert. Der eigentliche Wert ist ein Leerstring. In deinem Code greift das TRegistry Objekt auch auf HKCU anstatt den HKCR zu, da du keinen "Rootkey" definiert hast. "OpenKey" greift nur auf die Unterschlüssel des Rootkeys zu. Demnach muss die procedure so aussehen:
Delphi-Quellcode:
procedure TForm2.FormCreate(Sender: TObject);
var registry_val: TRegistry; Key : String; Key_Val : String; begin registry_val:=TRegistry.Create; Key:='acrobat\DefaultIcon'; with registry_val do begin try Rootkey:=HKEY_CLASSES_ROOT; if OpenKey(key,false) then begin Key_Val := registry_val.ReadString(''); end; except ShowMessage('Es ist ein Fehler aufgetreten!'); end; end; registry_val.Free; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:30 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 by Thomas Breitkreuz