![]() |
einzelnen TRegistry-Wert auslesen
HI
i-wie hab ich ein kleines Problem mit der Registry, ich kann normal auch die schlüssel auslesen, das ist alles kein Problem, doch möchte ich zu dem getvaluename noch den Wert, aber i.wie schaff ich das nicht und anschließend sollen diese gespeichert werden. das hab ich bis jetzt und es wird nur eine .txt erstellt mit nichts drin:
Code:
procedure Keysauslesen;
var a: Tstringlist; b:string; b2:string; test:string; begin a:=tstringlist.Create; regist2:=Tregistry.Create; b:= 'Software\Electronic Arts\....'; with regist2 do begin try rootkey:= HKEY_LOCAL_MACHINE; if OpenKey(b,false) then begin regist2.GetKeyNames(a); end; finally regist2.Free; end; a.Add(test); a.SaveToFile('C://test.txt'); end; end; |
DP-Maintenance
Dieses Thema wurde von "Matze" von "Programmieren allgemein" nach "Sonstige Fragen zu Delphi" verschoben.
Delphi-Frage |
Re: einzelnen TRegistry-Wert auslesen
Hast Du es mal mit
Delphi-Quellcode:
versucht?
a.SaveToFile('C:\test.txt');
|
Re: einzelnen TRegistry-Wert auslesen
1. Wo gibst Du regist2 wieder frei?
2. Du fragst nach den Werten von GetValueNames, aber diesen Befehl kann ich im geposteten Code nicht entdecken. |
Re: einzelnen TRegistry-Wert auslesen
Hi,
imho weiß er eben nicht, wie er GetValueName einsetzen muss. Zitat:
|
Re: einzelnen TRegistry-Wert auslesen
Das hab ich bei der Einrückung komplett übersehen :oops:
|
Re: einzelnen TRegistry-Wert auslesen
ja ist nicht ganz deutlich eingerückt
also es wird auch eine .txt gespeichert, aber mit Null inhalt ^^ ist denn der Befehl "getvaluenames" auch für den Wert hinten bestimmt ? |
Re: einzelnen TRegistry-Wert auslesen
Zwei sehr bedenkliche Sachen:
1. registry2 wird ausserhalb der Prozedur erzeugt, aber innerhalb freigegeben. 2. Die erzeugte Stringliste wird nicht wieder frei gegeben. Debug deinen Code doch mal bzw. bau eine ordentliche Fehlerbehandlung ein:
Delphi-Quellcode:
Fehler korrigiert. Dummer DP Debugger/Compiler. ;)
uses
Registry; procedure Foobar; var reg: Tregistry; sl: TStringList; begin reg := TRegistry.Create(KEY_READ); try // try-finally Registry reg.rootkey:= HKEY_LOCAL_MACHINE; if reg.OpenKey('Software\Borland', False) then begin sl := TStringlist.Create; try // try-finally Stringlist try // try-except Registry + Stringlist reg.GetKeyNames(sl); sl.SaveToFile('D:\test.txt'); except // try-except Registry + Stringlist raise Exception.Create(SysErrorMessage(GetLastError)); end; finally // try-finally Stringlist sl.Free; end; reg.CloseKey; end else // raise exception if reg.OpenKey fails raise Exception.Create(SysErrorMessage(GetLastError)); finally // try-finally reg reg.Free; end; end; procedure TForm1.Button1Click(Sender: TObject); begin try Foobar; except on E: Exception do ShowMessage(E.Message); end; end; |
Re: einzelnen TRegistry-Wert auslesen
Schau Dir mal dies Beispiel an (unkommentiert, in der Hilfe nachlesen ;) ):
Delphi-Quellcode:
procedure TForm1.btn1Click(Sender: TObject);
var kNames, vNames: TStringList; reg: TRegistry; i,j: Integer; ini: TIniFile; begin ini := TIniFile.Create('C:\Test.ini'); try reg := TRegistry.Create(KEY_READ); try reg.RootKey := HKEY_LOCAL_MACHINE; if reg.openKey('Software\Borland\BDS\5.0',false) then begin kNames := TStringList.Create; try reg.GetKeyNames(kNames); for i := 0 to kNames.Count - 1 do begin vNames := TStringList.Create; try reg.GetValueNames(vNames); for j := 0 to vNames.Count - 1 do ini.WriteString(kNames[i],vNames[j],reg.ReadString(vNames[j])); finally vNames.Free; end; end; finally kNames.Free; end; reg.CloseKey; end; finally reg.Free; end; finally ini.Free; end; end; |
Re: einzelnen TRegistry-Wert auslesen
Zitat:
genau so hatte ich das auch schonmal, es werden einfach nur die Unterdinger in .txt gespeichert, aber ich mmöchte ja den Wert eines einzelnen Wertes :-) versteht ihr ? schonmal vielen dank für di zahlreichen Hilfen und Antworten :-) mfg counter [edit=Luckie]Zitat-Tags korrigiert. Mfg, Luckie[/edit] |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:46 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