Einzelnen Beitrag anzeigen

Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#1

OpenKeyReadOnly in Windows VISTA 64Bit

  Alt 25. Jun 2008, 21:37
Hallo zusammen,

ich habe ein Problem, um Werte mit OpenKeyReadOnly auf einem 64Bit System laut dieser Anleitung aus der Code-Library auszulesen. Wenn ich jetzt den folgenden Code so ausführe, funktioniert alles wunderbar :
Delphi-Quellcode:
  regKey := 'SOFTWARE\Microsoft\Windows NT\CurrentVersion';

  reg := TRegistry.Create(FAccess);
  Reg.RootKey:= HKEY_LOCAL_MACHINE;

  If Reg.OpenKey(regKey, false) Then
  Begin
    Result.RegAnwender := Reg.ReadString( 'RegisteredOwner' );
    Result.RegFirma := Reg.ReadString( 'RegisteredOrganization' );
    Result.ProduktID := Reg.ReadString( 'ProductId' );
    If reg.ValueExists( 'CSDVersion') Then
      Result.Version:= Result.Version + ' (' + reg.ReadString( 'CSDVersion' ) + ')';

    If reg.ValueExists( 'ProductKey') Then
      Result.SerialNum:= reg.ReadString( 'ProductKey' ) Else Result.SerialNum:= '';
  End;
Hier werden jetzt die richtigen Werte angezeigt und ausgelesen. FAccess wird durch die Function GetRegAccessMode aus der Anleitung ermittelt. Ersetze ich nun die Zeile 4 durch diese hier :If Reg.OpenKeyReadOnly(regKey) Then Dann greift er auf den 64Bit-Teil in der Registry zu, was ich nicht ganz nachvollziehen kann. Warum ist das so ?
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat