AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Frage zu TRegIniFile.Create

Ein Thema von dragi · begonnen am 9. Jan 2005 · letzter Beitrag vom 9. Jan 2005
Antwort Antwort
dragi

Registriert seit: 22. Jul 2003
198 Beiträge
 
Delphi 2005 Personal
 
#1

Frage zu TRegIniFile.Create

  Alt 9. Jan 2005, 17:05
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
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Frage zu TRegIniFile.Create

  Alt 9. Jan 2005, 19:22
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).
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
dragi

Registriert seit: 22. Jul 2003
198 Beiträge
 
Delphi 2005 Personal
 
#3

Re: Frage zu TRegIniFile.Create

  Alt 9. Jan 2005, 20:11
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
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:09 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