Einzelnen Beitrag anzeigen

MatthiasR

Registriert seit: 21. Apr 2005
193 Beiträge
 
#1

Registry Key unter Win 7 aus D7-Anwendung heraus lesend öffnen

  Alt 12. Apr 2011, 15:56
In einer D7-Anwendung möchte ich gerne lesend auf einen Key in der Registry zugreifen. Unter Win XP funktioniert das auch tadellos, nur unter Win 7 nicht, obwohl der Key laut regedit.exe definitiv vorhanden ist. Hier mein Code:

Delphi-Quellcode:
function TForm1.IsVCPPRuntimeInstalled: Boolean;
const
  RegistryPfad = 'SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\' +
    'UserData\S-1-5-18\Products\b25099274a207264182f8181add555d0\InstallProperties';
var
  Registry: TRegistry;
  DisplayName: string;
  DisplayVersion: string;
begin
  Result := False;

  Registry := TRegistry.Create;
  try
    Registry.RootKey := HKEY_LOCAL_MACHINE;

    // prüfen, ob der Pfad auch wirklich existiert
    if (Registry.OpenKeyReadOnly(RegistryPfad)) then
    begin
      // den Namen und die Version auslesen
      DisplayName := Registry.ReadString('DisplayName');
      DisplayVersion := Registry.ReadString('DisplayVersion');

      if (AnsiUpperCase(DisplayName) = AnsiUpperCase('Microsoft Visual C++ 2005 Redistributable')) and
        (DisplayVersion = '8.0.56336') then
      begin
        Result := True;
      end;
    end;
  finally
    FreeAndNil(Registry);
  end;
end;
Was mache ich falsch? Das Registry.OpenKeyReadOnly schlägt fehl, auch wenn ich die Anwendung mit Administrator-Rechten ausführe.

Danke im Voraus für eure Hilfe!
  Mit Zitat antworten Zitat