AGB  ·  Datenschutz  ·  Impressum  







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

Registry auslesen

Ein Thema von Bergius · begonnen am 1. Okt 2003 · letzter Beitrag vom 1. Okt 2003
Antwort Antwort
Bergius

Registriert seit: 25. Jul 2003
Ort: Neufahrn b. Freising
7 Beiträge
 
#1

Registry auslesen

  Alt 1. Okt 2003, 11:53
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_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);
v_string war leer.

Daher habe ich gewalt angewendet und mir den Eintrag selber gemacht:

Delphi-Quellcode:
    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;
Beim ersten mal kam die Meldung 'der Eintrag wurde angelegt'.
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
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: Registry auslesen

  Alt 1. Okt 2003, 12:03
Wo gibst du denn bitte hier:
Delphi-Quellcode:
  begin
      Reg.WriteString('Left','HKEY_CURRENT_USER\Software\Steema Software\TeeChart Pro\Editor');
      MessageDlg('der Eintrag wurde angelegt ', mtInformation, [mbOk], 0);
    end;
an, was er reinschreiben soll?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Bergius

Registriert seit: 25. Jul 2003
Ort: Neufahrn b. Freising
7 Beiträge
 
#3

Re: Registry auslesen

  Alt 1. Okt 2003, 12:23
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
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

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

Re: Registry auslesen

  Alt 1. Okt 2003, 12:24
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]
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
Bergius

Registriert seit: 25. Jul 2003
Ort: Neufahrn b. Freising
7 Beiträge
 
#5

Re: Registry auslesen

  Alt 1. Okt 2003, 12:46
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:
 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;
funktionert.

Herzlichen Dank
Rolf Bergius
  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 20:49 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