Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Schreib/Lese-Zugriff auf Registry? (Vista) (https://www.delphipraxis.net/100917-schreib-lese-zugriff-auf-registry-vista.html)

ralfiii 5. Okt 2007 13:22


Schreib/Lese-Zugriff auf Registry? (Vista)
 
Hallo!

Beim Anpassen einer App für Vista bin ich folgendem Problem "begegnet":

Will man auf die Registry unter LocalMachine nur lesen zugreifen, so mach ich das so:

Delphi-Quellcode:
     with TRegIniFile.Create do
     try
        RootKey:=HKey_Local_Machine;
        OpenKeyReadOnly('\Software\Test\');
        Memo1.Lines.Add('Read = '+ReadString('', 'foo', ''));
     finally
            Free;
     end;
(klappt auch mit eingeschränkten Benutzerrechten)

Will ich Lesen und schreiben (ich hab dem Pfad in der Registy modify-rechte für jeden eingeräumt) und nehme einfach statt "OpenKeyReadOnly" "OpenKey", dann schlägt das fehl. Und das scheinbar weil bei Access auch KEY_CREATE_LINK dabei ist (wofür auch immer das sein mag)

Wie nun?
Access:=KEY_READ or KEY_WRITE;
oder
Access:=KEY_ALL_ACCESS and not KEY_CREATE_LINK;
(lustigerweise ergeben diese zwei zeilen nicht den selben wert)

oder ganz anders?

Danke,
Ralf

Nuclear-Ping 5. Okt 2007 13:25

Re: Schreib/Lese-Zugriff auf Registry? (Vista)
 
Ich glaube das liegt daran, dass HKLM schonwieder erweiterte Rechte benötigt. Auf HKCU müsstest du aber so schreiben können oder?

ralfiii 5. Okt 2007 13:36

Re: Schreib/Lese-Zugriff auf Registry? (Vista)
 
Zitat:

Zitat von Nuclear-Ping
Ich glaube das liegt daran, dass HKLM schonwieder erweiterte Rechte benötigt. Auf HKCU müsstest du aber so schreiben können oder?

Wie gesagt, ich hab für den entsprechenden Pfad mit dem Installer in der Registry authusers-modify Rechte eingetragen, auch eingeschränkte Benutzer können dort also arbeiten.

Der Code mit "...READ or WRITE" funtioniert ja, aber ir kommt das so pfuschig vor. Daher meine Frage: Gehört das wirklich so?

(und, angeschlossen daran: Was ist denn das mit dem CREATE_LINK?)


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