AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi TRegistry.ReadString......Gibt es Platzhalter in der Reg?
Thema durchsuchen
Ansicht
Themen-Optionen

TRegistry.ReadString......Gibt es Platzhalter in der Reg?

Ein Thema von unlimited · begonnen am 18. Jun 2007 · letzter Beitrag vom 19. Jun 2007
Antwort Antwort
unlimited

Registriert seit: 27. Apr 2007
13 Beiträge
 
#1

TRegistry.ReadString......Gibt es Platzhalter in der Reg?

  Alt 18. Jun 2007, 16:12
Hi Leutz,

Ich möchte in meinem Projekt den Installationspfad von Firefox auslesen.
Auf meinem Computer klappt es auch schon wunderbar mit einem Button und einem Edit-Feld.

Doch was ist wenn ein anderer Nutzer meines Programms nicht die Firefox Version "2.0.0.4 (de)" hat.
Kann man dort einen Platzhalter einbauen der für alle beliebige Versionen oder Felder steht?

Wie z.b. "?" in java oder "*" bei sonstigen?

Code:
  regist:=TRegistry.Create;
  regist.RootKey:=HKEY_LOCAL_MACHINE;
  regist.OpenKey('SOFTWARE\Mozilla\Mozilla Firefox\2.0.0.4 (de)\Main', true);

  Result :=regist.ReadString('Install Directory') + '\';
  regist.free;

  Edit1.Text:=Result;

Gruß
  Mit Zitat antworten Zitat
CCRDude
(Gast)

n/a Beiträge
 
#2

Re: TRegistry.ReadString......Gibt es Platzhalter in der Reg

  Alt 18. Jun 2007, 16:24
Erstmal solltest Du in Deinem Code die Rückgabewerte von OpenKey, ValueExists und RegDataType auswerten, sonst könnte das eine Exception werfen. Weiterhin kann ein CloseKey nicht schaden (nur der Ordentlichkeit halber).

Wildcards gibt es so nicht, aber wenn Du erst SOFTWARE\Mozilla öffnest und dann dort ein GetKeyNames verwendest, kannst Du dort die verschiedenen Unterschlüssel durchiterieren.
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#3

Re: TRegistry.ReadString......Gibt es Platzhalter in der Reg

  Alt 18. Jun 2007, 16:26
Hallo,

auf meinem Rechner gibt es im Pfad "HKEY_LOCAL_MACHINE\SOFTWARE\Mozilla\Mozilla Firefox" einen String-Eintrag CurrentVersion. Dieser enthält den Namen des gesuchten Schlüssels.

Gruß Hawkeye
  Mit Zitat antworten Zitat
unlimited

Registriert seit: 27. Apr 2007
13 Beiträge
 
#4

Re: TRegistry.ReadString......Gibt es Platzhalter in der Reg

  Alt 18. Jun 2007, 16:27
Dankeschön für die Antwort.

EDIT: Hawkeye219, du warst schneller aber ich hab es fertig


Ich habe es nun nach langem Getüftel so gelöst.

Delphi-Quellcode:
//Coded by unlimited
regist:=TRegistry.Create;
  regist.RootKey:=HKEY_LOCAL_MACHINE;
  regist.OpenKey('SOFTWARE\Mozilla\Mozilla Firefox\',true);
  CurrentVersion:= regist.ReadString('CurrentVersion');
  regist.CloseKey;

  Path:= 'SOFTWARE\Mozilla\Mozilla Firefox\' +CurrentVersion+ '\Main';

  regist.OpenKey(Path, true);

  Result :=regist.ReadString('Install Directory') + '\';
  regist.free;
  //Coded by unlimited
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#5

Re: TRegistry.ReadString......Gibt es Platzhalter in der Reg

  Alt 18. Jun 2007, 16:30
du solltest dir dringend die Hilfe von TRegistry und den Methoden davon anschauen. Warum übergibst du als zweiten Parameter von OpenKey zum Beispiel True obwohl du nichts schreiben willst? Und warum wertest du nicht die Rückgabewerte von OpenKey aus? Angenommen OpenKey schlägt fehl arbeitest du trotzdem weiter obwohl die folgenden Anweisungen dann gar nicht funktionieren könnnen!
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6

Re: TRegistry.ReadString......Gibt es Platzhalter in der Reg

  Alt 18. Jun 2007, 17:16
Ausserdem wird der Schlüssel mit KEY_ALLACCESS geöffnet, obwohl nicht geschrieben werden soll. Das führt zu Problemen, wenn der Anwender ohne Administratorenrechte arbeitet.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
fLaSh11
(Gast)

n/a Beiträge
 
#7

Re: TRegistry.ReadString......Gibt es Platzhalter in der Reg

  Alt 18. Jun 2007, 17:25
Auf jeden fall noch ein try fianlly rein!

Delphi-Quellcode:
  with regist:=TRegistry.Create do
    begin
    try
      RootKey:=HKEY_LOCAL_MACHINE;
      OpenKey('SOFTWARE\Mozilla\Mozilla Firefox\',true);
      CurrentVersion:= regist.ReadString('CurrentVersion');
      CloseKey;

      Path:= 'SOFTWARE\Mozilla\Mozilla Firefox\' +CurrentVersion+ '\Main';

      OpenKey(Path, true);

      Result :=ReadString('Install Directory') + '\';
    finally
      Free;
    end;
  end;
  Mit Zitat antworten Zitat
unlimited

Registriert seit: 27. Apr 2007
13 Beiträge
 
#8

Re: TRegistry.ReadString......Gibt es Platzhalter in der Reg

  Alt 19. Jun 2007, 13:40
Zitat von fLaSh11:
Auf jeden fall noch ein try fianlly rein!

  with regist:=TRegistry.Create do

Hi Leute,
Danke für die Hilfe! Hat mir auch sehr geholfen !!!!!

Was bedeutet das "with" und das "do" ?
ISt das eine besondere "do" schleife oder wie?
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.195 Beiträge
 
Delphi 10.4 Sydney
 
#9

Re: TRegistry.ReadString......Gibt es Platzhalter in der Reg

  Alt 19. Jun 2007, 13:42
Schau doch mal in deiner Delphi-Hilfe nach.
Windows Vista - Eine neue Erfahrung in Fehlern.
  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 06:57 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