Thema: Delphi Registry key lesen

Einzelnen Beitrag anzeigen

Benutzerbild von Ralf Kaiser
Ralf Kaiser

Registriert seit: 21. Mär 2005
Ort: Wuppertal
932 Beiträge
 
Delphi 10.3 Rio
 
#3

Re: Registry key lesen

  Alt 23. Jan 2009, 23:03
Zitat von msickel:
Hallo,

ich verwende folgenden Code um den Winlogon aus der Registry zu lesen.
Das geht auch solange wie ich lokal oder als admin angemeldet bin, als normaler User gehts nicht warum?
Halli Hallo,

Erst einmal: die OpenKey-Methode gibt dir ein boolean zurück um anzuzeigen, dass der Aufruf erfolgreich war. Dieses Ergebis wertest du nicht aus! (der Rückgabewert wird nicht ohne Grund geliefert! )

Zu deinem Problem:

Delphi (bzw. die Unit "Registry") fordert beim öffnen eines Registry Keys normalerweise volle Rechte an (also auch Schreibrechte). Um das zu verhindern kann man das Property "Access := KEY_READ" setzen. Also so:

Delphi-Quellcode:
procedure TForm1.Button_1Click(Sender: TObject);
begin
  with TRegistry.Create do begin
    RootKey := HKEY_LOCAL_MACHINE;
    Access := KEY_READ;
    if OpenKey('SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon', False) then
      ShowMessage(ReadString('DefaultDomainName'))
    else
      ShowMessage('Ooops...')
  end;
end;
Dann klappt das Lesen auch als normaler Benutzer (aber man kann keine schreibenden Funktionen mehr verwenden!!!)

Ciao,
Ralf
Ralf Kaiser
  Mit Zitat antworten Zitat