Delphi-PRAXiS
Seite 1 von 2  1 2      

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)

Vielleichtmann 17. Mär 2013 16:05

Registry auslesen funktioniert nicht
 
Hallo,
ich habe auch schon drüben im Lazarusforum gefragt, aber doppelt hält ja besser :-)
Ich glaube, ich stehe gerade irgendwie auf dem Schlauch. Warum funktioniert diese Methode nicht, die Registry auszulesen. Ich möchte testweise den Wert von "HKEY_LOCAL_MACHINE\SOFTWARE\Lazarus\Capabilities\ ApplicationName" auslesen, dieser müsste eigentlich "Lazarus IDE" sein, aber wenn ich den Code ausführe, bekomme ich einen leeren Wert zurück. Woran könnte das liegen?

Delphi-Quellcode:
procedure TForm1.RegistryAuslesen;
var Registry: TRegistry;
    Test: string;
begin
  Registry:=TRegistry.Create;
  {Testweise auslesen von HKEY_LOCAL_MACHINE\SOFTWARE\Lazarus\Capabilities\ApplicationName}
  Registry.RootKey:=HKEY_LOCAL_MACHINE;
  Registry.OpenKey('SOFTWARE\Lazarus\Capabilities', true);
 
  Test:=Registry.ReadString('ApplicationName');
 
  ShowMessage(Test);
  {"Schließen" der Registry}
  Registry.CloseKey;
  Registry.free;
  end;
Dankeschön :-)

Furtbichler 17. Mär 2013 16:13

AW: Registry auslesen funktioniert nicht
 
Darfst Du das denn (Rechtemäßig)?

Vielleichtmann 17. Mär 2013 16:14

AW: Registry auslesen funktioniert nicht
 
Zitat:

Zitat von Furtbichler (Beitrag 1207811)
Darfst Du das denn (Rechtemäßig)?

Ich denke schon, dass ich meine eigene Registry auslesen darf oder? Ich denke für private Nutzung sollte das kein Problem sein.

Edit: Außerdem geht es später darum, die installierten Programme anzuzeigen und das sollte wirklich in Ordnung sein :D

Dalai 17. Mär 2013 16:24

AW: Registry auslesen funktioniert nicht
 
Die Methode TRegistry.OpenKey öffnet einen Schlüssel immer mit Schreibrechten, sofern man dem nicht vorbeugt. In HKLM dürfen nur Admins schreiben und daraus ergibt sich, dass Furtbichler wohl richtig liegt.

MfG Dalai

jfheins 17. Mär 2013 16:25

AW: Registry auslesen funktioniert nicht
 
Zitat:

Zitat von Vielleichtmann (Beitrag 1207812)
Ich denke schon, dass ich meine eigene Registry auslesen darf oder? Ich denke für private Nutzung sollte das kein Problem sein.
Edit: Außerdem geht es später darum, die installierten Programme anzuzeigen und das sollte wirklich in Ordnung sein :D

Das war nicht der Sinn der Frage ;-)
Aber wenn man das Programm normal startet, dann hat es in dem HKLM Zweig nur Leserechte und keine Schreibrechte. Dein Code versucht aber, mit Schreibrechten auf die Registry zuzugreifen.
Schau mal was es da noch so gibt: http://docwiki.embarcadero.com/Libra...penKeyReadOnly

Vielleichtmann 17. Mär 2013 16:34

AW: Registry auslesen funktioniert nicht
 
Zitat:

Zitat von jfheins (Beitrag 1207814)
Das war nicht der Sinn der Frage ;-)

Ach soll mir doch einer sagen, dass er Windows-Rechte meinte :D
Mit OpenKeyReadOnly bekomme ich allerdings auch kein Ergebnis, ich kriege nur ein false zurück.

Der schöne Günther 17. Mär 2013 17:03

AW: Registry auslesen funktioniert nicht
 
Wenn ich die Hilfe richtig verstanden habe, dann geht
Delphi-Quellcode:
OpenKeyReadOnly
erst mit vollen Rechten in den Schlüssel und schaltet dann wieder einen Gang auf
Delphi-Quellcode:
KEY_READ
herunter.

Wenn das Programm nicht mit Administratorrechten läuft würde ich besser erst die .Access-Property setzen und dann in die Registry tauchen.

Wenn ich mich richtig erinnere kann man als Standardbenutzer schon etwas in HKLM herumwühlen, aber manche Order/Schlüssel sind absolut tabu, da darf auch nicht mehr gelesen werden...

Vielleichtmann 17. Mär 2013 17:10

AW: Registry auslesen funktioniert nicht
 
Zitat:

Zitat von Der schöne Günther (Beitrag 1207817)
Wenn das Programm nicht mit Administratorrechten läuft

Wobei mich dabei irritiert, dass das Programm auch dann nicht richtig läuft, wenn ich es als Administrator starte, obwohl die Rechte dann ja eigentlich kein Problem mehr sein dürften.

Sir Rufo 17. Mär 2013 17:31

AW: Registry auslesen funktioniert nicht
 
Zitat:

Zitat von Vielleichtmann (Beitrag 1207818)
Zitat:

Zitat von Der schöne Günther (Beitrag 1207817)
Wenn das Programm nicht mit Administratorrechten läuft

Wobei mich dabei irritiert, dass das Programm auch dann nicht richtig läuft, wenn ich es als Administrator starte, obwohl die Rechte dann ja eigentlich kein Problem mehr sein dürften.

Ab Win7 reicht nicht als sondern mit Adminrechten starten ;)

Vielleichtmann 17. Mär 2013 18:42

AW: Registry auslesen funktioniert nicht
 
Zitat:

Zitat von Sir Rufo (Beitrag 1207821)

Ab Win7 reicht nicht als sondern mit Adminrechten starten ;)

Funktioniert auch mit Adminrechten nicht :o


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:44 Uhr.
Seite 1 von 2  1 2      

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