AGB  ·  Datenschutz  ·  Impressum  







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

Registry lesen

Ein Thema von oldmann · begonnen am 3. Sep 2020 · letzter Beitrag vom 4. Sep 2020
Antwort Antwort
oldmann

Registriert seit: 10. Okt 2008
Ort: Weyhe
138 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

Registry lesen

  Alt 3. Sep 2020, 16:36
Hallo,

ich benutze Delphi Tokyo 10.2.2 mit Windows10.
Ich habe ein Problem beim Lesen der Registry.
Ich schreibe Werte aus dem Programm in die Registry.
Am Anfang jedoch, wenn das Programm neu installiert wird, sind diese Werte noch nicht vorhanden.
Beim lesen von Strings gibt es kein Problem.
Wenn ich jedoch Integer auslesen will, die noch nicht vorhanden sind, gibt es eine Fehlermeldung.
Wie kann ich die Werte abfragen ohne das eine Fehlermeldung ausgegeben wird ?
Für Eure Hilfe wäre ich dankbar.

Gruß Oldmann
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.680 Beiträge
 
Delphi 5 Professional
 
#2

AW: Registry lesen

  Alt 3. Sep 2020, 17:22
Was für eine Fehlermeldung erscheint da? Wie sieht der zugehörige Code aus?

Grüße
Dalai
  Mit Zitat antworten Zitat
HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
961 Beiträge
 
Delphi 6 Professional
 
#3

AW: Registry lesen

  Alt 3. Sep 2020, 17:47
Hmm..

wenn Du nur zum Lesen die Reg öffnest, dann sollte Dir OpenKey(<Pfad>, False) ein 'False' zurückgeben, wenn dein Registry-Pfad nicht vorhanden ist...

Somit gehe ich von aus (mangels SourceCode), dass Du den Rückgabewert ignorierst und trotzdem versuchst mit Readxxx Werte zu Lesen..
(Ja ich Verwende Delphi 6 Pro und will NICHT wechseln!)
  Mit Zitat antworten Zitat
oldmann

Registriert seit: 10. Okt 2008
Ort: Weyhe
138 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#4

AW: Registry lesen

  Alt 4. Sep 2020, 09:15
Hallo,

Hier der Code:

procedure Registry_lesen;
begin
with TRegistry.Create do
begin
try
Rootkey:=HKEY_CURRENT_USER;
if OpenKey('Software\Windaxlg',True) then
begin
test.str_1:=ReadString('Win1');
test.str_2:=ReadString('Win2');
aufrufe:=ReadInteger('Win3');
test.Tage:=ReadInteger('Win4');
test.str_4:=ReadString('Win4');
end;
finally
Free;
end;
end;
end;

Am Anfang ist der Code ja bei dem Anwender nicht vorhanden.
Er wird erst im laufe der Programmausführung gespeichert.
Daher bekomme ich bei den Integern eine Fehlermeldung.
Die Fehlermeldung lautet: „Fehler beim Holen der Daten von Win3“

Oldmann
  Mit Zitat antworten Zitat
oldmann

Registriert seit: 10. Okt 2008
Ort: Weyhe
138 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

AW: Registry lesen

  Alt 4. Sep 2020, 09:16
Hallo,

Hier der Code:

[GOOGLE]
Delphi-Quellcode:
procedure Registry_lesen;
begin
with TRegistry.Create do
begin
try
Rootkey:=HKEY_CURRENT_USER;
if OpenKey('Software\Windaxlg',True) then
begin
test.str_1:=ReadString('Win1');
test.str_2:=ReadString('Win2');
aufrufe:=ReadInteger('Win3');
test.Tage:=ReadInteger('Win4');
test.str_4:=ReadString('Win4');
end;
finally
Free;
end;
end;
end;
[/GOOGLE]Am Anfang ist der Code ja bei dem Anwender nicht vorhanden.
Er wird erst im laufe der Programmausführung gespeichert.
Daher bekomme ich bei den Integern eine Fehlermeldung.
Die Fehlermeldung lautet: „Fehler beim Holen der Daten von Win3“

Oldmann
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.680 Beiträge
 
Delphi 5 Professional
 
#6

AW: Registry lesen

  Alt 4. Sep 2020, 10:41
Fälschlicherweise war ich der Annahme, dass Delphi-Referenz durchsuchenTRegistry.ReadInteger keine Exception wirft. Die Doku sagt aber klar:
Zitat:
If the Registry entry does not contain an integer, an exception is raised.
Daher wird es wohl sinnvoll sein, vor jedem Read... mit TRegistry.ValueExists zu prüfen, ob der Wert vorhanden ist, und bei Nichtvorhandensein einen Standardwert zu setzen.

Unabhängig davon solltest du auf das with verzichten.

Grüße
Dalai
  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 00:34 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