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 Access (https://www.delphipraxis.net/69278-registry-access.html)

xZise 12. Mai 2006 21:22


Registry Access
 
Gibt es eine SAUBERE Mögichkeit zu überprüfen, ob der Benutzer überhaupt in die Registry schreiben darf?

pszopp 12. Mai 2006 22:56

Re: Registry Access
 
Hi,

ob es eine solche Methode gibt weiß ich leider auch nicht.
Was spricht dagegen, das Schreiben einfach zu versuchen und den
möglichen Fehler mit Try Except zu behandelt?

Delphi-Quellcode:
try
  Reg.WriteString('KeyName', 'NeuerWert');
except
  // Fehlerbehandlung
end;
Wenn mein Window-Halbwissen mich nicht täuscht kann in HKey_Current_User
immer etwas schreiben.

Gruß,
pszopp

mkinzler 13. Mai 2006 07:49

Re: Registry Access
 
Zitat:

Wenn mein Window-Halbwissen mich nicht täuscht kann in HKey_Current_User
immer etwas schreiben.
Wenn der Anwender Haupbenutzer ist, als Gast darf er das nicht.

Andreas L. 13. Mai 2006 09:00

Re: Registry Access
 
Ahoi,
Zitat:

Zitat von pszopp
Hi,

ob es eine solche Methode gibt weiß ich leider auch nicht.
Was spricht dagegen, das Schreiben einfach zu versuchen und den
möglichen Fehler mit Try Except zu behandelt?

Delphi-Quellcode:
try
  Reg.WriteString('KeyName', 'NeuerWert');
except
  // Fehlerbehandlung
end;
Wenn mein Window-Halbwissen mich nicht täuscht kann in HKey_Current_User
immer etwas schreiben.

Gruß,
pszopp

Wenn ich mich richtig erinnere hat Luckie mal in einen meiner Threads geschrieben das WriteString einen Boolean zurückliefert. Also ist der try-except-Block nicht nötig.

Delphi-Quellcode:
if Reg.WriteString('Keyname', 'Neuer Wert')=true then
 begin
  ShowMessage('Der User hat Schreibrechte!');
 end
else
 begin
  ShowMessage('Der User hat keine Schreibrechte!');
 end;
bye,
Andy

xZise 13. Mai 2006 11:36

Re: Registry Access
 
Zitat:

Zitat von onlinehome
[...]das WriteString einen Boolean zurückliefert.[...]

Also in meiner IDE ist WriteString als Procedure deklariert ;) Und ich denke kaum, dass sie etwas über die Parameter zurückgibt :D

Luckie 13. Mai 2006 11:38

Re: Registry Access
 
Du kannst den Securitry Descriptor auslesen und gucken, ob die Schreibzugriff hast.

xZise 13. Mai 2006 11:47

Re: Registry Access
 
Zitat:

Zitat von Luckie
Securitry Descriptor auslesen

??? Kenne ich nicht :D Aber ich suche mal dannach!

[edit]Habe nichts "brauchbares" gefunden :( [/edit]

Andreas L. 13. Mai 2006 12:14

Re: Registry Access
 
Zitat:

Zitat von xZise
Zitat:

Zitat von onlinehome
[...]das WriteString einen Boolean zurückliefert.[...]

Also in meiner IDE ist WriteString als Procedure deklariert ;) Und ich denke kaum, dass sie etwas über die Parameter zurückgibt :D

OK, OK. Dann wars ReadString ;-) Sorry.

Luckie 13. Mai 2006 15:03

Re: Registry Access
 
Zitat:

Zitat von xZise
[edit]Habe nichts "brauchbares" gefunden :( [/edit]

http://msdn.microsoft.com/library/de...ccesscheck.asp

Und hier ein Blogeintrag von larry Otserman: http://blogs.msdn.com/larryosterman/...13/229019.aspx

markusj 13. Mai 2006 15:08

Re: Registry Access
 
Zitat:

Delphi-Quellcode:
Reg.WriteString('Keyname', 'Neuer Wert')=true

Wenn der einen Boolean zurückliefert, kann man das =true auch weglassen!

mfG

Markus


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