Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi registry auslesen (https://www.delphipraxis.net/62790-registry-auslesen.html)

Skullschildi 9. Feb 2006 15:50


registry auslesen
 
Und wieder mal Hallo zum beliebtesten quiz zum Thema delphi.
heute:
Wie lese ich etwas aus der registrierung aus?
Meine damen und Herren, ich kann ihnen versichern, mit
Delphi-Quellcode:
Registry.openkey('software/meinproggi', false);
form1.caption := Registry.ReadString('zeichenkette');
werden Sie nichts in der titelleiste Ihres Formulars lesen können, weil sich nichts darin befindet.
Es gibt keine Fehlermeldung und auch kein Ergebnis.Nun, verehrte Zuschauer Zuhause, wie würden Sie das Problem lösen? Schnell geraten und fluchs eingetippt, zu gewinnen gibt es die Gewissheit, einen Menschen glücklich gemacht zu haben.
Die Leitungen sind nun geschaltet, viel erfolg.

Jetzt mal ernst:

HILFE!!!
--------
Danke für antworten

Matze 9. Feb 2006 15:56

Re: registry auslesen
 
Hallo,

hast du Delphi-Referenz durchsuchenRootKey gesetzt?


Edit: Und ohne das Herumgelabere würde man dir sicher schneller helfen können, da man sich nicht erst zur eigentlichen Frage durcharbeiten muss.

Skullschildi 9. Feb 2006 15:59

Re: registry auslesen
 
ja,
Delphi-Quellcode:
 registry.rootkey := 'HKEY_LOCALMACHINE'

Matze 9. Feb 2006 16:01

Re: registry auslesen
 
Hm, schau einfach mal im SDC vorbei. Evtl. steht einfach nichts in diesem Schlüssel.

Skullschildi 9. Feb 2006 16:11

Re: registry auslesen
 
ich hab da schon was reingeschrieben, mit regedit. da steht was drin, will aber partu nich rauskommen

Matze 9. Feb 2006 16:16

Re: registry auslesen
 
Dann zeig mal bitte den kompletten Code, der den String in die Registry schreibt oder nenne uns den kompletten Schlüssel.

Zusätzlich dann noch den kompletten Code zum Auslesen dieses Werts.

Skullschildi 9. Feb 2006 16:22

Re: registry auslesen
 
Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, registry, ComCtrls, ShellCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    ShellListView1: TShellListView;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
 registry : tregistry;
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  Registry := TRegistry.Create;
  try
Registry.RootKey := HKEY_LOCAL_MACHINE;
Registry.openkey('hardware/derbe/', false);
form1.caption := Registry.ReadString('himbeere');
finally
Registry.Free;
end;
end;

end.
in der registry steht unter
HKEY_LOCALMACHINE
|_Hardware
|_Derbe (Standart)
himbeere REG_SZ erdbeere

Matze 9. Feb 2006 16:33

Re: registry auslesen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Bei mir geht es so ohne Probleme:

Delphi-Quellcode:
var
  reg: TRegistry;
begin
  reg := TRegistry.Create;
  try
    reg.RootKey := HKEY_LOCAL_MACHINE;
    reg.OpenKey('Hardware\Derbe', False);
    Caption := reg.ReadString('Himbeere');
    reg.CloseKey;
  finally
    reg.Free;
  end;
end;
Die Caption enthält dann das Wort "Erdbeere".
Im Anhang die Struktur in der Registry.


Nachtrag: Bei OpenKey hast du deine Slashes etwas verwechselt.

Luckie 9. Feb 2006 16:36

Re: registry auslesen
 
Ich halte es für etwas bedenklich eine Variable und eine Unit gleichen Namens zu verwenden.

franktron 9. Feb 2006 16:38

Re: registry auslesen
 
Hast du Adminrechte wenn nicht ist das keine wunder denn nur Admins können HKEY_LOCAL_MACHINE lesen und schreiben

Skullschildi 9. Feb 2006 16:42

Re: registry auslesen
 
Danke, es lag an den slashes. Irgendeiner von beiden, delphi oder windoof is der dibbelesschisser. Ich hasse dieses beharren auf die slash und backslash wie hölle.
Danke nochmals

Luckie 9. Feb 2006 16:43

Re: registry auslesen
 
Falsch. "lesen" sollte jeder können, wenn an den Berechtigungen nichts geändert wurde. Schreiben kann man in der Regel nur als Administrator. Deswegen sollte man, wenn man nur lesen will, auch die Registry nur lesend öffnen.

Zitat:

Zitat von Skullschildi
Ich hasse dieses beharren auf die slash und backslash wie hölle.

Der offizielle Pathseparator unter Windows ist nun mal der Backslash. Dass unterumständen auch der Slash verstanden wird, ist historisch bedingt, als einige Microsoftmitarbeiter unter DOS wie unter UNIX arbeiten wollten und eben auch den Slash als Pathseparator vorgesehen haben. Ich hoffe nur, dass du nicht genauso über das Rechtsfahrgebot auf deutschen Strassen denkst. :shock:

Matze 9. Feb 2006 16:45

Re: registry auslesen
 
Dennoch würde ich Luckies Hinweis beachten:
Nenne Variablen nie so, wie andere Komponenten bzw. deren Eigenschaften (Name: string, könnte mit Form1.Name in Konflikt geraten), da das zu Fehlern führen kann, deren Ursache man natürlich so leicht nicht findet.


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:07 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