Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi OpenKeyReadOnly in Windows VISTA 64Bit (https://www.delphipraxis.net/116258-openkeyreadonly-windows-vista-64bit.html)

RWarnecke 25. Jun 2008 20:37


OpenKeyReadOnly in Windows VISTA 64Bit
 
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 :
Delphi-Quellcode:
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 ? :gruebel:

Phoenix 14. Jul 2008 08:35

Re: OpenKeyReadOnly in Windows VISTA 64Bit
 
Ich hab grad das gleiche Problem.^^

Hat jemand da ne Ahnung?

RWarnecke 14. Jul 2008 09:23

Re: OpenKeyReadOnly in Windows VISTA 64Bit
 
Hallo Sebastian,

ich habe das jetzt über den Befehl MSDN-Library durchsuchenRegOpenKeyEx gelöst. Wenn Du dort die Rechte gemäß der Anleitung übergibst, greift er auf den richtigen Teil der Registry zu.

Phoenix 14. Jul 2008 09:30

Re: OpenKeyReadOnly in Windows VISTA 64Bit
 
Das schliesst dann aber die Verwendung von TRegistry aus, oder?

RWarnecke 14. Jul 2008 09:37

Re: OpenKeyReadOnly in Windows VISTA 64Bit
 
Jepp, korrekt. Zumindest für den nur lesen Zugriff.

Phoenix 14. Jul 2008 09:41

Re: OpenKeyReadOnly in Windows VISTA 64Bit
 
Hrm. Leider sind die Sourcen die da aus der Registry lesen nicht von mir. :( Naja, immerhin kann ich das jetzt bei mir mal Patchen damit das wenigstens auf meiner Entwicklungsmaschine läuft.

RWarnecke 14. Jul 2008 09:56

Re: OpenKeyReadOnly in Windows VISTA 64Bit
 
Willst Du die Registry.pas patchen ?

Phoenix 14. Jul 2008 10:11

Re: OpenKeyReadOnly in Windows VISTA 64Bit
 
Nein. Ich setze auf einer fremden Codebasis auf die eben TRegistry benutzt. Diese Codebasis kann ich kurz umpatchen dass sie eben bei mir an der einen Stelle selber liest. Damit läuft die Anwendung auf meinem Entwicklungsrechner und ich kann weiter entwickeln.

Da bisher kein Kunde x64 einsetzt ist das auch unkritisch, solange nicht ich das Release baue :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:15 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz