Noch ein anderer Punkt, nachdem die offensichtlichen Dinge (
AV, korrekte Verwendung der Datentypen) nun (hoffentlich) gelöst sind: Im Policies-Schlüssel der Registry dürfen
ausschließlich Administratoren schreiben, auch wenn da
HKCU als Rootkey angegeben ist! Anders herum formuliert: ein Nutzer darf in
HKCU machen, was er will, da es ja sein eigener Zweig der Registry ist - mit Ausnahme der Policies; möglicherweise gibt's noch andere Schlüssel, aber das dürfte der prominenteste sein.
Ich lasse mal Änderungen der Zugriffsrechte an diesem Schlüssel absichtlich unter den Tisch fallen, weil das in der Praxis keine Rolle spielt. Es hat ja seinen Grund, warum es Policies sind: die Nutzer sollen daran gehindert werden, an den Vorgaben der Administratoren (zumeist Gruppenrichtlinien) rumzuspielen.
Ich empfehle daher, das zu bedenken.
Übrigens ist es immer eine gute Idee, die Rückgabewerte von Funktionen zu prüfen. Es ist besser
Delphi-Quellcode:
if OpenKey(...) then begin
WriteInteger(...);
end;
zu schreiben, als einfach davon auszugehen, dass die Funktion (hier OpenKey) schon erfolgreich gewesen sein wird.
Grüße
Dalai