Wie erstellst du eine Instanz von TRegistry?
reg := TRegistry.Create;
Öffnet die Registry immer mit
KEY_ALL_ACCESS, also mit Lese-
und Schreibrechten. Aber eventuell hast du keine Schreibrechte. Wenn du nur lesen willst, erstelle das TRegistry Objekt so:
reg := TRegistry.Create(KEY_READ);
Dann solltest du auch lesen können, wenn du keine Schreibrechte hast.
HKLM ist so ein Fall, da darf nur der Admin schreiben. Selbst ein Hauptbenutzer kann dort nicht schreiben.