Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Frage zu TRegIniFile.Create (https://www.delphipraxis.net/37740-frage-zu-treginifile-create.html)

dragi 9. Jan 2005 17:05


Frage zu TRegIniFile.Create
 
Hallo,

ich über gerade wie man die Registry ausliest. Nun habe ich hier ein Beispiel gefunden wie man die Installierte Software auslesen kann.Hier die Code:
Code:
var
  reg: TRegIniFile;
  SoftList: TStringList;
  i: Integer;
  Name: String;
begin
  reg := TRegIniFile.Create;
  SoftList := TStringList.Create;
  try
    reg.RootKey := HKEY_LOCAL_MACHINE;
    if reg.OpenKey('Software\Microsoft\Windows\Currentversion\Uninstall', FALSE) then
    begin
      reg.ReadSections(SoftList);
      for i := 0 to SoftList.Count - 1 do
      begin
        Name := Reg.ReadString(SoftList[i], 'DisplayName', '');
        if Name <> '' then
          ListBox1.Items.Add(Name);
      end;
    end;
  finally
    SoftList.Free;
    reg.Free;
  end;
  ListBox1.Sorted := True;
end;
Nun habe ich aber ein kleines Problem. Ich benutze Delphi3 Professional und bei
Code:
  reg := TRegIniFile.Create
Möchte Delphi 3 das ich einen StringParameter übergebe in dem die location des anzulegenden TRegIniFile Objekts steht. Wenn ich das mache schreibt Delphi diesen String natürlich als Schlüssel in die Registry. Unter Delphi 5 brauche ich keinen Parameter übergeben muss aber Delphi 3 nutzen. Was soll ich da am sinnvollsten übergeben? Eigentlich möchte ich nicht das mein Programm in die Registry schreibt!
Kann mir jemand sagen was ich da am Sinnvollsten schreibe und welches die sauberste Lösung ist?

Vielen Dank

Dragi

Bernhard Geyer 9. Jan 2005 19:22

Re: Frage zu TRegIniFile.Create
 
AFAIK arbeitet die D3-Implementierung von TRegistry immer mit schreibzugriff und verursacht deshalb z.B. ohne Admin-Rechte probleme.

Du kannst aber die Jedi Code Library verwenden. Dort gibt es Registry-Zugriffsfunktionen, welche auch ohne Schreibrechte (und damit Schreibzugriff auskommen).

dragi 9. Jan 2005 20:11

Re: Frage zu TRegIniFile.Create
 
Hmm, alles was ich bei Jedi finde ist nur ab Delphi 4 aufwärts. Gibt es Jedi auch für Delphi 3?

Und dann gibt es hier im Board noch dieses Beispiel:
Code:
uses Registry;

procedure TForm1.Button1Click(Sender: TObject);
var
  reg : TRegistry;
begin
  reg := TRegistry.Create(KEY_READ);
  try
    reg.RootKey := HKEY_LOCAL_MACHINE;
    if reg.OpenKey('Software\Microsoft\Windows\Currentversion\Uninstall', FALSE) then
    begin
       reg.GetKeyNames(Listbox1.Items);
    end
    else
      RaiselastOSError();
  finally
    reg.Free;
  end;
end;
Aber wenn ich es so mache finde ich keine Möglichkeit an die Strings die in 'DisplayName' stehen ranzukommen. Gibt es eine Möglichkeit?

Gruss

Dragi


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:04 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz