![]() |
Mal wieder probleme mit der registry
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:
is da ein denkfehler drin, oder falsch geproggt, oder warum funzt das nicht?
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; |
Re: Mal wieder probleme mit der registry
Hai glkbkk,
Du musst noch den Root-Key angeben:
Delphi-Quellcode:
Dann sollte es eigentlich gehen.
.
. reg.RootKey := HKEY_LOCAL_MACHINE; reg.OpenKeyReadOnly('SOFTWARE\Microsoft\Windows NT\CurrentVersion'); . . |
Re: Mal wieder probleme mit der registry
Moin glkbkk,
da haben sich mehrere Fehler eingeschlichen. ;-)
|
Re: Mal wieder probleme mit der registry
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.
|
Re: Mal wieder probleme mit der registry
Delphi-Quellcode:
[Edit]Zu langsam[/Edit]
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; |
Re: Mal wieder probleme mit der registry
:wall: 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? |
Re: Mal wieder probleme mit der registry
unter XP ist es ebenfalls Windows NT.
|
Re: Mal wieder probleme mit der registry
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? |
Re: Mal wieder probleme mit der registry
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. |
Re: Mal wieder probleme mit der registry
habs schon verstanden :-D
thx |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:59 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz