Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Registry auslesen funktioniert nicht (https://www.delphipraxis.net/173807-registry-auslesen-funktioniert-nicht.html)

Furtbichler 17. Mär 2013 19:15

AW: Registry auslesen funktioniert nicht
 
Du musst die Registry Instanz so instantiieren:
Delphi-Quellcode:
Const
  KEY_WOW64_64KEY=$100;

...
Registry:=TRegistry.Create(KEY_READ OR KEY_WOW64_64KEY);
Dann geht es. Habs eben getestet (ich hab Win7 64bit).

Vielleichtmann 17. Mär 2013 21:18

AW: Registry auslesen funktioniert nicht
 
Zitat:

Zitat von Furtbichler (Beitrag 1207832)
Dann geht es. Habs eben getestet (ich hab Win7 64bit).

Funktioniert aus irgendwelchen Gründen ebenfalls nicht. Jedenfalls nicht unter Lazarus.

Furtbichler 17. Mär 2013 22:17

AW: Registry auslesen funktioniert nicht
 
Da ich kein Lazarus habe, klinke ich mich hier aus.

Na jedenfalls konnte ich dein Problem wenigstens bei mir unter Delphi nachvollziehen...

Tut mir leid.

Vielleichtmann 17. Mär 2013 23:55

AW: Registry auslesen funktioniert nicht
 
Zitat:

Zitat von Furtbichler (Beitrag 1207842)
Da ich kein Lazarus habe, klinke ich mich hier aus.

Es war jetzt letztendlich quasi das, was du meintest.

Delphi-Quellcode:
procedure TForm1.RegistryAuslesen;
var Registry: TRegistry;
    Test: string;
begin
  Registry:=TRegistry.Create(KEY_READ OR $0100);
  {Testweise auslesen von HKEY_LOCAL_MACHINE\SOFTWARE\Lazarus\Capabilities\ApplicationName}
  Registry.RootKey:=HKEY_LOCAL_MACHINE;
  Registry.OpenKey('\SOFTWARE\Lazarus\Capabilities', false);

  Test:=Registry.ReadString('ApplicationName');

  ShowMessage(Test);
  {"Schließen" der Registry}
  Registry.CloseKey;
  Registry.free;
end;
So läuft es zumindest schonmal unter 64-Bit. Trotzdem danke :-)

Edit: Und wenn mir dann noch jemand helfen könnte, wie ich alle Schlüssel eines Ordners in der Registry auslesen kann, wär das natürlich noch ideal.

DeddyH 18. Mär 2013 07:09

AW: Registry auslesen funktioniert nicht
 
http://docwiki.embarcadero.com/Libra...ry.GetKeyNames
Ich vermute, das oder zumindest etwas Ähnliches ist auch unter Lazarus verfügbar.

Andreas L. 18. Mär 2013 09:00

AW: Registry auslesen funktioniert nicht
 
Ein Ressourcenschutzblock und die Auswertung des Rückgabewertes von OpenKey täte deinen Code auch gut.

Delphi-Quellcode:
procedure TForm1.RegistryAuslesen;
var Registry: TRegistry;
    Test: string;
begin
  Registry := TRegistry.Create(KEY_READ OR $0100);
  try
    {Testweise auslesen von HKEY_LOCAL_MACHINE\SOFTWARE\Lazarus\Capabilities\ApplicationName}
    Registry.RootKey:=HKEY_LOCAL_MACHINE;
    if Registry.OpenKey('\SOFTWARE\Lazarus\Capabilities', false) then
    begin
      Test := Registry.ReadString('ApplicationName');
      ShowMessage(Test);

      {"Schließen" der Registry}
      Registry.CloseKey;
    end;
  finally
    Registry.free; // oder FreeAndNil(Registry)
  end;
end;

Vielleichtmann 18. Mär 2013 10:17

AW: Registry auslesen funktioniert nicht
 
Zitat:

Zitat von DeddyH (Beitrag 1207852)
Ich vermute, das oder zumindest etwas Ähnliches ist auch unter Lazarus verfügbar.

Ok, danke :-) Anscheinend ist das gar nicht so schwer, wenn man weiß, wonach man suchen muss...

Zitat:

Zitat von Andreas L. (Beitrag 1207857)
Ein Ressourcenschutzblock und die Auswertung des Rückgabewertes von OpenKey täte deinen Code auch gut.

Wird später noch alles kommen, erstmal muss das Grundlegende funktionieren :D

Sir Rufo 18. Mär 2013 23:15

AW: Registry auslesen funktioniert nicht
 
Zitat:

Zitat von Vielleichtmann (Beitrag 1207870)
Zitat:

Zitat von Andreas L. (Beitrag 1207857)
Ein Ressourcenschutzblock und die Auswertung des Rückgabewertes von OpenKey täte deinen Code auch gut.

Wird später noch alles kommen, erstmal muss das Grundlegende funktionieren :D

Nach einer gewissen Zeit wird das zur Routine und dann zum Reflex ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:48 Uhr.
Seite 2 von 2     12   

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