AGB  ·  Datenschutz  ·  Impressum  







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

Mal wieder probleme mit der registry

Ein Thema von glkgereon · begonnen am 22. Aug 2004 · letzter Beitrag vom 22. Aug 2004
Antwort Antwort
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#1

Mal wieder probleme mit der registry

  Alt 22. Aug 2004, 07:46
hi
also ich will per TRegistry werte aus der registry auslesen

doch irgendwie sind meine variablen leer, bzw der text im edit ist vergleichsweise leer (das os zieh ich mir vorher schon anders...)

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var
reg: TRegistry;
begin
reg:=TRegistry.Create;
reg.OpenKeyReadOnly('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion');
osname:=reg.ReadString('ProductName');
version:=reg.ReadString('CurrentVersion');
user:=reg.ReadString('RegisteredOwner');
org:=reg.ReadString('RegisteredOrganization');
Servicepack:=reg.ReadString('CSDVersion');
Edit1.Text:='OS: '+os+' - '+osname+' '+version+' +++ '+user+' - '+org+' +++ '+servicepack+' +++ ';
end;
is da ein denkfehler drin, oder falsch geproggt, oder warum funzt das nicht?
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Mal wieder probleme mit der registry

  Alt 22. Aug 2004, 09:08
Hai glkbkk,

Du musst noch den Root-Key angeben:

Delphi-Quellcode:
  .
  .
  reg.RootKey := HKEY_LOCAL_MACHINE;
  reg.OpenKeyReadOnly('SOFTWARE\Microsoft\Windows NT\CurrentVersion');
  .
  .
Dann sollte es eigentlich gehen.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Mal wieder probleme mit der registry

  Alt 22. Aug 2004, 09:09
Moin glkbkk,

da haben sich mehrere Fehler eingeschlichen.
  1. Bei der Angabe des Keys gibt man nur den Subkey an, den Rootkey übergibt man in der Eigenschaft Delphi-Referenz durchsuchenRootKey
  2. Beim Öffnen des Keys fehlt die Abfrage, ob das erfolgreich war.
  3. Das Registry Objekt wird nicht wieder freigegeben (try/finally)
  4. Der Key wird nicht geschlossen (try/finally)
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#4

Re: Mal wieder probleme mit der registry

  Alt 22. Aug 2004, 09:17
Noch ein Problem. Unter 9x/ME stehen die Angaben nicht im "Windows NT"-Schlüssel. Sollte man, wie ich finde, erwähnen, auch wenn glkbkk das Programm erst mal nur für sein eigenes Betriebssystem schreibt.
  Mit Zitat antworten Zitat
Benutzerbild von GuenterS
GuenterS

Registriert seit: 3. Mai 2004
Ort: Österreich > Bad Vöslau
760 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Mal wieder probleme mit der registry

  Alt 22. Aug 2004, 09:17
Delphi-Quellcode:
procedure ReadInfoFromRegistry;
var
  lReg: TRegistry;
  lOSName, lVersion, lUser, lOrg, lServicePack: string;
begin
  lReg := TRegistry.Create(KEY_READ);
  try
    lReg.RootKey := HKEY_LOCAL_MACHINE;
    if (lReg.OpenKeyReadOnly('SOFTWARE\Microsoft\Windows NT\CurrentVersion')) then
    try
      lOSName := lReg.ReadString('ProductName');
      lVersion := lReg.ReadString('CurrentVersion');
      lUser := lReg.ReadString('RegisteredOwner');
      lOrg := lReg.ReadString('RegisteredOrganization');
      lServicepack := lReg.ReadString('CSDVersion');
    finally
      lReg.CloseKey;
    end;
  finally
    lReg.Free;
  end;
  Memo1.Lines.Add('OS: ' + lOSName + ' ' + lVersion + ' +++ ' + lUser + ' - ' + lOrg + ' +++ ' + lServicepack + ' +++ ');
end;
[Edit]Zu langsam[/Edit]
Günter
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#6

Re: Mal wieder probleme mit der registry

  Alt 22. Aug 2004, 15:22
so vile fehler...

kann ich denn gucken wie der pfad nu heisst, ob Windows NT, oder ob stattdessen da ein Windows XP oder so hinmuss?
kann man das irgendwie nachgucken?
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
Benutzerbild von GuenterS
GuenterS

Registriert seit: 3. Mai 2004
Ort: Österreich > Bad Vöslau
760 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: Mal wieder probleme mit der registry

  Alt 22. Aug 2004, 15:25
unter XP ist es ebenfalls Windows NT.
Günter
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#8

Re: Mal wieder probleme mit der registry

  Alt 22. Aug 2004, 15:27
aba bei Windows 95/98 ja bestimmt nicht
wenns nur zwei versionen gibt, könnte man ja auch einfach das betriebssystem prüfen...
aber dann muss ichs fürn neues wieder umschreiben, falls denn ma wieda was kommt
und was is mit ME/2003?
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#9

Re: Mal wieder probleme mit der registry

  Alt 22. Aug 2004, 15:29
Unter 95/98/ME ist es nur "Windows" (logisch, oder? ). Der einfachste Weg wäre ein Bool-Array mit den beiden Strings. Abhängig von der ermittelten Plattform (Delphi-Bordmittel oder API) benutzt du einen davon und greifst automatisch auf den richtigen Schlüssel zu.

Schlecht erklärt, ich geb´s zu, aber so lässt es sich ohne viel Aufwand machen.
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#10

Re: Mal wieder probleme mit der registry

  Alt 22. Aug 2004, 15:31
habs schon verstanden

thx
»Unlösbare Probleme sind in der Regel schwierig...«
  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:03 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