Einzelnen Beitrag anzeigen

amigage

Registriert seit: 11. Nov 2005
Ort: Leipzig
272 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Zugriff auf Registry eines eingeschränkten Benutzerkontos mit Adminrechten

  Alt 15. Dez 2011, 18:21
Vielen lieben Dank Euch beiden, für die schnelle Reaktion.

Du bist als User1 angemeldet und benutzt runas um als Admin ein weiteres Programm zu starten?
Genauso siehts aus. Ich habe durch den Hinweis auf Hier im Forum suchenRegOpenCurrentUser mal meine Funktion versucht umzubasteln, aber irgendwie bekomme ich bei User1 und runas Admin immer noch die Werte des Admin. Wo liegt bei mir der Fehler?

Delphi-Quellcode:
function ReadRegistryValue(MyHKey : Byte; RegKey : String; RegValue : String) : String; overload;
var
  Reg : TRegistry;
  RegOpenCurrentUser: TRegOpenCurrentUser;
  hkResult: HKEY;
begin
  Result := '';
  Reg:=TRegistry.Create;
  try

    if MyHKey = 1 then
    begin
      RegOpenCurrentUser := GetProcAddress(GetModuleHandle('ADVAPI32.DLL'), 'RegOpenCurrentUser');
      if Assigned(RegOpenCurrentUser) then
        if RegOpenCurrentUser(KEY_READ, @hkResult) <> ERROR_SUCCESS then
        begin
          showmessage('geht nicht!');
          exit;
        end;
    end;

    Case MyHKey of
      1: Reg.RootKey:= hkResult; //HKEY_CURRENT_USER;
      2: Reg.RootKey:= HKEY_LOCAL_MACHINE;
      3: Reg.RootKey:= HKEY_CLASSES_ROOT;
    end;

    Reg.Access := KEY_READ;
    if Reg.OpenKey(RegKey, False) then
      If Reg.ValueExists(RegValue) then
      begin
        try
          Result := Reg.ReadString(RegValue);
        except
          Result := '';
        end;
      end;

  finally
    Reg.CloseKey;
    Reg.Free;
  end;
end;
  Mit Zitat antworten Zitat