Announcement

Collapse
No announcement yet.

Ermitteln der Zugriffsrechte für einen Registrykey

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Ermitteln der Zugriffsrechte für einen Registrykey

    Hallo,

    kann mir jemand bei folgendem Problem helfen:

    Ich möchte herausfinden, ob der angemeldete User für einen bestimmten Registrykey nur Leserechte oder Lese- und Schreibrechte hat.

    Besten Dank im Vorraus<BR>
    Bea

  • #2
    Hi,

    Munter drauflos schreiben. Siehe Bsp:

    <pre>
    procedure TSysInfo.StdMailerClick(Sender: TObject);
    var Reg: TRegistry;
    begin
    if MessageDlg('ADA soll Ihnen als Standard-Mailprogramm dienen ??', mtConfirmation, [mbYes, mbNo], 0 ) = mrYes then
    Begin
    Reg := TRegistry.Create;
    try
    Reg.RootKey:=HKEY_CLASSES_ROOT; // Abschnitt in Registrierung
    if not Reg.OpenKey('\mailto\shell\open\command',False) then
    Reg.CreateKey('\mailto\shell\open\command');
    if not Reg.OpenKey('\mailto\shell\open\command',False) then
    ShowMessage('Fehler beim Öffnen des erstellten Schlüssels')
    else
    Reg.WriteString('', ParamStr( 0 )+' -m %1');
    finally
    Reg.Free;
    end;
    end;
    end;
    </pre&gt

    Comment


    • #3
      Hallo <br>
      suchst du so etwas ?

      <pre>
      Function GetRegisterRechte(CONST RootKey:HKEY):LongWord;
      var myReg:TRegistry;
      begin
      myReg:=TRegistry.Create;
      try
      myReg.RootKey := RootKey;
      Result:=myReg.Access;
      finally
      myReg.free;
      end;
      end;

      Die Eigenschaft Access legt die Zugriffsebene beim Öffnen von Schlüsseln fest.

      property Access: LongWord;

      Beschreibung

      Mit Access bestimmen Sie die Zugriffsberechtigung für das Öffnen von Schlüsseln. Die Methode OpenKey verwendet den Wert von Access beim Öffnen von Registrierungsschlüsseln. Access wird von dem Konstruktor TRegistry initialisiert, kann aber vor dem Aufruf von OpenKey geändert wird.

      Der Wert von Access besteht aus einer Reihe von mit ODER zusammengesetzter Flags. Jedes Flag gibt einen Berechtigungstyp an. Wählen Sie einen Wert aus, der eine ausreichende Berechtigung für die gewünschten Aktionen ermöglicht, aber dennoch die Zugriffsebene des Systems, auf dem die Anwendung ausgeführt wird, nicht überschreitet. Die folgende Tabelle enthält die Flags, die einbezogen werden können:

      Flag Bedeutung

      KEY_ALL_ACCESS Kombination von KEY_READ, KEY_WRITE und KEY_CREATE_LINK.
      KEY_READ Kombination von KEY_QUERY_VALUE, KEY_ENUMERATE_SUB_KEYS und KEY_NOTIFY.
      KEY_WRITE Kombination von KEY_SET_VALUE und KEY_CREATE_SUB_KEY.
      KEY_QUERY_VALUE Berechtigung zum Abfragen von Unterschlüsseldaten
      KEY_ENUMERATE_SUB_KEYS Berechtigung zum Zählen von Unterschlüsseln
      KEY_NOTIFY Berechtigung zum Empfangen von Änderungsbotschaften

      KEY_SET_VALUE Berechtigung zum Setzen von Unterschlüsseldaten
      KEY_CREATE_SUB_KEY Berechtigung zum Erzeugen von Unterschlüsseln
      KEY_CREATE_LINK Berechtigung zum Erzeugen von symbolischen Verknüpfungen
      KEY_EXECUTE Ermöglicht nur einen Lesezugriff

      Hinweis

      Access wird von der Methode CreateKey ignoriert. Diese Methode verwendet immer das Flag KEY_ALL_ACCESS.
      </pre&gt

      Comment

      Working...
      X