Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Delphi Registry Lesen (https://www.delphipraxis.net/152783-registry-lesen.html)

Dieter11 6. Jul 2010 20:31

Registry Lesen
 
Hallo Zusammen,

ich hoffe, mir kann hier jemand helfen:

OS: Windows 7
Delphi 2007

Ich schreibe mit folgendem Code einen Eintrag in die Registry --> das funktioniert:

Delphi-Quellcode:
VAR
  Registry : TRegistry;
  WriteReportToRegistry : Boolean;

begin
  WriteReportToRegistry := True;
  Registry := TRegistry.Create;
  Registry.RootKey := HKEY_LOCAL_MACHINE;

  if Registry.KeyExists('\Software\SysIT\Nails4You') = False then
     Try
        Registry.CreateKey('\Software\SysIT\Nails4You');
     Except
        Registry.Free;
          WriteReportToRegistry := False;
          Registry.WriteString ('Mandant', DBEdit_MandantNr.Text);
        Exit;
     END;

  Try
    if Registry.OpenKey('\Software\SysIT\Nails4You', True) = True then
       Registry.WriteString ('Mandant', DBEdit_MandantNr.Text)
       ELSE
          Begin
              MessageDLG('Es konnte nicht in die Registry geschrieben werden', mtError, [mbOK], 0);
              Registry.WriteString (DBEdit_MandantNr.Text, DSN);
          End;

  Finally
      Registry.CloseKey;
      Registry.free;
  End;

Ich versuche, den Eintrag wie folgt auszulesen:

Delphi-Quellcode:
procedure Tfrm_Main.Button1Click(Sender: TObject);

var Registry: TRegistry;
var Test : String;
var mandant : String;
begin
  Registry := TRegistry.Create;
  try
    Registry.RootKey := HKEY_CURRENT_USER;
    Registry.OpenKey('Software\SysIT\Nails4You', true);

    Test := Registry.ReadString('Mandant') ;
   
//    except

 //   end;
  finally
//    Registry.free;
  end;

//  finally
//    regist.free;
//  end;

end;
Der Variable Test wird leider kein Wert zugeordnet.
Wo liegt denn der Fehler?

Danke.

Gruss

Dieter

Luckie 6. Jul 2010 20:37

AW: Registry Lesen
 
Hast du Administratorenrechte? Ist die UAC aktiv? ansonsten kann die Virtualisierung zuschlagen.

daywalker9 6. Jul 2010 20:39

AW: Registry Lesen
 
Also ich würde diesen Fehler erstmal rausnehmen:

Delphi-Quellcode:
        Registry.Free;
          WriteReportToRegistry := False;
          Registry.WriteString ('Mandant', DBEdit_MandantNr.Text);
        Exit;
Du freest bei except Registry und versuchst dann noch was mit der Klasse in die Registry schreiben

//edit: Du schreibst in HKEY_LOCAL_MACHINE und ließt aus HKEY_CURRENT_USER aus. Das wird der Fehler sein ;)
//edit2: Und lass das Vergleichen auf = True oder = False weg. Ich weiss nun nicht so auf die schnell ob das ein Problem ist. Du gibts beim Schreiben \SOFTWARE mit vorangegangem Slash an, wenn du das auch beim Schreiben machst?

mkinzler 6. Jul 2010 20:40

AW: Registry Lesen
 
Zitat:

Hast du Administratorenrechte? Ist die UAC aktiv? ansonsten kann die Virtualisierung zuschlagen.
Bei CURRENT_USER?

Dieter11 6. Jul 2010 20:51

AW: Registry Lesen
 
Hallo,

ja, ich habe die Adminrechte und lese jetzt auch aus HKEY_LOCAL_MACHINE-

Leider ohne Ergebnis.

Gruss

Dieter

Dieter11 6. Jul 2010 20:53

AW: Registry Lesen
 
Habe den Fehler gefunden.

Danke für Eure Unterstützung.

Gruss

Dieter

daywalker9 6. Jul 2010 20:56

AW: Registry Lesen
 
Und was wars?

Dieter11 6. Jul 2010 20:59

AW: Registry Lesen
 
Es waren 2 Fehler:

try
Registry.RootKey := HKEY_LOCAL_MACHINE;
Registry.OpenKey('Software\SysIT\Nails4You', true);

Test := Registry.ReadString('Mandant') ;
ShowMessage(Test);
// except
Mandant := Registry.ReadString('Mandant');

Luckie 6. Jul 2010 21:03

AW: Registry Lesen
 
Zitat:

Zitat von mkinzler (Beitrag 1033856)
Zitat:

Hast du Administratorenrechte? Ist die UAC aktiv? ansonsten kann die Virtualisierung zuschlagen.
Bei CURRENT_USER?

Also schreiben tut er nach HKLM.

mkinzler 6. Jul 2010 21:14

AW: Registry Lesen
 
Und gelesen aus HKCU


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:42 Uhr.
Seite 1 von 2  1 2      

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