![]() |
Registry auslesen
Hallo,
ich möchte die Registry von W2K mit Delphi 5 auslesen. Dafür habe ich einen Schlüssel exportiert: Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\Steema Software\TeeChart Pro\Editor] "Left"=dword:00000131 "Top"=dword:000000d2 Und dann ausgelesen:
Delphi-Quellcode:
v_string war leer.v_ret:= Reg.OpenKey('HKEY_CURRENT_USER\Software\Steema Software\TeeChart Pro\Editor', True); v_string:= Reg.ReadString('Left'); MessageDlg('v_string: ' + v_string, mtInformation, [mbOk], 0); Daher habe ich gewalt angewendet und mir den Eintrag selber gemacht:
Delphi-Quellcode:
Beim ersten mal kam die Meldung 'der Eintrag wurde angelegt'.
if REG.ValueExists('Left') then
begin v_string:=Reg.ReadString('Left'); MessageDlg('der Eintrag existert schon und lautet: v_string: ' + v_string, mtInformation, [mbOk], 0); end else begin Reg.WriteString('Left','HKEY_CURRENT_USER\Software\Steema Software\TeeChart Pro\Editor'); MessageDlg('der Eintrag wurde angelegt ', mtInformation, [mbOk], 0); end; Jetzt steht in v_string der Pfad: 'HKEY_CURRENT_USER\Software\Steema Software\TeeChart Pro\Editor' Unter regedit steht immer noch: "Left"=dword:00000131 (auch nach booten) Wie kann ich die 00000131 auslesen? Mit freundlichen Grüßen Rolf Bergius |
Re: Registry auslesen
Wo gibst du denn bitte hier:
Delphi-Quellcode:
an, was er reinschreiben soll? :roll:
begin
Reg.WriteString('Left','HKEY_CURRENT_USER\Software\Steema Software\TeeChart Pro\Editor'); MessageDlg('der Eintrag wurde angelegt ', mtInformation, [mbOk], 0); end; |
Re: Registry auslesen
procedure WriteString(const Name, Value: String);
Value ist doch jetzt der neue Wert des Schlüssels, oder nicht? mit: Reg.WriteString('Left','HKEY_CURRENT_USER\Software \Steema Software\TeeChart Pro\Editor'); müsste der Eintrag in der Regisry wie folgt heißen: Left 'HKEY_CURRENT_USER\Software\Steema Software\TeeChart Pro\Editor' tut er aber glücklicherweise nicht. Ich möchte ja gar nicht schreiben sondern lesen. Rufe ich Regedit auf: "Left"=dword:00000131 läuft mein Programm: v_string = 'HKEY_CURRENT_USER\Software\Steema Software\TeeChart Pro\Editor' Warum ist v_string != dword:00000131? Mit freundlichen Grüßen Rolf Bergius |
Re: Registry auslesen
Moin Rolf,
gemäss Deiner Reg-Datei handelt es sich doch um Werte vom Typ REG_DWORD, Du versuchst die aber mit ReadString auszulesen. Dazu müsste es aber REG_SZ oder REG_EXPAND_SZ sein. Das hätte bei Dir eigenlich eine Exception auslösen müssen. Probiers einfach mal mit ReadInteger. [EDIT] Was ich gerade erst gesehen habe: Du schreibst beim Reg.OpenKey('HKEY_CURRENT_USER\... Der Rootkey wird aber über Reg.Rootkey := HKEY_CURRENT_USER angegeben. Mit OpenKey wird der darunter befindliche Key (auch Keypfad) angegeben. Du müsstest bei Dir auf dem Rechner jetzt unter HKEY_CURRENT_USER einen ebenso benannten Schlüssel habe. [/EDIT] |
Re: Registry auslesen
Ahhhhhh!
Du hast recht. Jetzt habe ich einen neuen Schlüssel. 'HKEY_CURRENT_USER\HKEY_CURRENT_USER\Software\Stee ma Software\TeeChart Pro\Editor' dieser Schlüssel ist leer. Ich hoffe, dass ich ihn problemlos löschen kann. neuer Code
Delphi-Quellcode:
funktionert. :-D
Reg := TRegistry.Create;
try Reg.RootKey := HKEY_CURRENT_USER; Reg.OpenKey('Software\Steema Software\TeeChart Pro\Editor', True); v_int:= Reg.ReadInteger('Top'); MessageDlg('v_int: ' + IntToStr(v_int), mtInformation, [mbOk], 0); finally Reg.CloseKey; Reg.Free; inherited; end; Herzlichen Dank Rolf Bergius |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:16 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