Announcement

Collapse
No announcement yet.

Win2000 Registry mit Delphi bearbeiten

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

  • Win2000 Registry mit Delphi bearbeiten

    Hallo,

    nach der Umstellung einiger PC's auf Windows 2000 habe ich das Problem, dass meine mit Delphi 5 erstellten Programme die in HKEY_LOCAL_MACHINE abgelegten Werte nur noch lesen können, wenn der eingeloggte Benutzer Administrator-Rechte hat.

    Was muss ich tun, damit die Werte auch von Benutzern mit Hauptbenutzer-Rechten gelesen und geschrieben werden können, bzw. welcher Schlüssel kann verwendet werden.

    In einem Fall handelt es sich um einen Prüfschrank, bei dem wöchentlich ein Testlauf durchgeführt werden muss. Das Datum des letzten Prüflaufs wird zusammen mit anderen Einstellungen in der Registry abgespeichert. Da jeder, der den Schrank benutzt auch den Test durchführen kann, muss der Wert auch von Hauptbenutzern geschrieben und gelesen werden können. Die Ablage unter HKEY_CURRENT_USER scheidet aus.

    Bin ich gezwungen wieder auf INI-Dateien zurückzugreifen?

    Gruß Gerd.

  • #2
    Es gab' schonmal einen langen Thread dazu mit einer ähnlichen Problemstellung.<br>
    (im Forum nach <b>RegKeyWithFullAccess</b> suchen)<p>
    Kurz zusammengfaßt kann ich empfehlen einen Schlüssel unter HKLM\Software\<Firma>\<Anwendung> anzulegen (mit explizieter Angabe der Rechte--oder als Admin diese ändern)<br>
    da Unterschlüssel bei der Anlage (wenn nicht explizit etwas anderes angegebn wird--selten notwendig) die Rechte von dem übergeordneten Schlüssel erben.

    Gruß Nic

    Comment


    • #3
      Hallo,

      Microsoft hat die "Registry-Knigge" bei Windows 2000 gegenüber NT 4 geändert. In der Kurzfassung liest sich das so:

      1. NT4: HKLM stand zur Verfügung, wenn TRegistry.Create(KEY_READ or KEY_WRITE) verwendet wurde.

      2. Windows 2000: Nur "Power-User" (Hauptbenutzer) dürfen auf Teile von HKLM schreiben. Statt dessen ist HKEY_CURRENT_USER der richtige Platz. Allerdings darf auch ein Power-User nicht auf HKEY_CLASSES_ROOT schreiben, d.h. in diesem Fällen wird ein Administrator für die Installation einer Software benötigt, die CLSIDs ablegt.

      3. Alternativen:<br>
      a) LogonUser + ImpersonateLoggedOnUser, wenn Privilegien vorhanden sind <br>
      b) Ein eigenes COM+ Objekt (das unter dem Administrator-Konto ausgeführt wird) übernimmt die Schreibzugriffe auf die Registry und wird von "außen" (normales Benutzerkonto) über Automation fernbedient. In diesem Fall unterscheidet das Betriebssystem zwischen den Rechten für die Ausführung und den Rechten für den Aufruf dieses Objekts. Wenn jeder Benutzer das Recht bekommt, dieses COM+ Objekt unter Windows 2000 aufzurufen, spielen die Registry-Einschränkungen keine Rolle mehr, dann das Objekt selbst wird ja unter dem Administrator-Konto ausgeführt.
      &#10

      Comment

      Working...
      X