Home » Tipps & Tricks » System » Registry » Lesend auf HKEY_LOCAL_MACHINE zugreifen

Lesend auf HKEY_LOCAL_MACHINE zugreifen

Unter Windows NT ist es „normalen“ Anwendern ohne Administrator-Rechte nicht erlaubt, auf den HKEY_LOCAL_MACHINE-Schlüssel der Registry schreibend zuzugreifen. Wird unter Delphi über TRegistry lesend darauf zugegriffen, funktioniert das jedoch auch nicht. Das liegt daran, dass TRegistry automatisch Vollzugriff fordert. Folgendermaßen muss man vorgehen, wenn man nur Lesezugriff haben will (ab Delphi 5):

uses Windows, Registry;

procedure TForm1.Button1Click(Sender: TObject);
var
  regist: TRegistry;
begin
  regist := TRegistry.Create(KEY_READ);
  try
 ...
  finally
    regist.free;
  end;
end;

Die Unit Windows ist wegen der Konstante KEY_READ nötig. Über die Eigenschaft Access der TRegistry-Klasse können Sie den Zugriffsmodus vor dem Öffnen eines Schlüssel auch nachträglich ändern. Die Zugriffsmodi sind in der Online-Hilfe unter dem Stichwort „TRegistry,Access“ dokumentiert.Wenn in einem Programm nur lesend auf die Registry zugegriffen wird, sollte immer dieser Weg eingeschlagen werden, da immer nur soviele Rechte angefordert werden sollten, wie nötig.