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 als Benutzer lesen (https://www.delphipraxis.net/116971-registry-als-benutzer-lesen.html)

kuba 9. Jul 2008 14:50


Registry als Benutzer lesen
 
Hallo,

ich hab mal ne "doofe" Frage, darf ein User mit normalen Benutzerrechten Einträge in der Registry lesen ?

Hier mein Code, mit Admin Rechten funktioniert es:

Delphi-Quellcode:
procedure ReadEXE (var PW: String);
Var
  Registry: tRegistry;
Begin
  Registry := tRegistry.Create;
  Try
    Registry.RootKey := HKEY_LOCAL_MACHINE;
    Registry.OpenKey ('\Software\KUBA\EXE', False);
    PW := Registry.ReadString ('Program');
    Registry.CloseKey;
  Finally
    Registry.Free;
  End;
End;
Warum geht es nicht mit Benutzerrechten ? Ist an dem Code etwas nicht OK ?

KUBA

RavenIV 9. Jul 2008 15:04

Re: Registry als Benutzer lesen
 
Versuch mal dieses.

0) In der Delphi-Hilfe die Hilfe zu TRegistry lesen

1) Schau mal, was OpenKey zurückgibt.
Bei False konnte der Schlüssel nicht geöffnet werden.

2) Wenn ReadString einen leeren String zurückgibt, dann existiert der Schlüssel nicht.

3) Vielleicht darf der Benutzer nicht auf HKEY_LOCAL_MASHINE zugreifen

Luckie 9. Jul 2008 15:05

Re: Registry als Benutzer lesen
 
Zitat:

Zitat von kuba
Warum geht es nicht mit Benutzerrechten ? Ist an dem Code etwas nicht OK ?

Ja, Der Konstruktor von TRegistry öffnet die Registry immer mit allen Rechten, also auch mit Schreibrechten und die hat eine Benutzer unter HKLM nicht. Informiere dich in der Hilfe über mögliche Aufrufparamter von Create.

Christian Seehase 9. Jul 2008 15:06

Re: Registry als Benutzer lesen
 
Moin Kuba,

schau Dir mal die Eigenschaft TRegistry.Access an.
Standardmässig wird mit KEY_ALL_ACCESS gearbeitet.
Ausserdem gibt es noch die Methode OpenKeyReadOnly.

Des weiteren:
OpenKey gibt einen Wert zurück.
Den solltest Du auch nutzen, denn ein Öffnen kann ja auch schiefgehen, ausserdem sollte man nur dann den Key schliessen, wenn er auch erfolgreich geöffnet werden konnte, und das Schliessen sollte auch mit try/finally sichergestellt werden, zumal ReadString eine Exception werfen kann.

kuba 9. Jul 2008 15:32

Re: Registry als Benutzer lesen
 
Leute ihr seid echt super :cheers:

Ich hab Delphi nirgendwo gelernt und mir alles selbst beigebracht, das ist manchmal ganz schön schwierig.

Jedenfalls vielen Dank für die Tip´s, jetzt weiss ich (an dieser Stelle) wo´s lang geht.

KUBA

RavenIV 9. Jul 2008 15:48

Re: Registry als Benutzer lesen
 
Zitat:

Zitat von kuba
Leute ihr seid echt super :cheers:

Ich hab Delphi nirgendwo gelernt und mir alles selbst beigebracht, das ist manchmal ganz schön schwierig.

Jedenfalls vielen Dank für die Tip´s, jetzt weiss ich (an dieser Stelle) wo´s lang geht.

KUBA

Es gibt viele Tutorials für die unterschiedlichen Gebiete.
Dann gibt es auch noch viele Bücher, die sich mit Delphi befassen.
Schliesslich gibt es auch noch die Delphi-Hilfe, bei der man auch immer wieder was lernen kann.

Und wenn das alles nicht hilft, dann kann man ja immernoch in der DP eine Frage posten und wird meistens geholfen.

kuba 9. Jul 2008 23:45

Re: Registry als Benutzer lesen
 
Zitat:

Zitat von RavenIV
Und wenn das alles nicht hilft, dann kann man ja immernoch in der DP eine Frage posten und wird meistens geholfen.

Stimmt genau !! In der DP steckt jede Menge BRAIN :corky:

KUBA


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