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