Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Admin Rechte beim Lesen aus Registry 64Bit (https://www.delphipraxis.net/164919-admin-rechte-beim-lesen-aus-registry-64bit.html)

kuba 6. Dez 2011 10:51

Admin Rechte beim Lesen aus Registry 64Bit
 
Hallo,

ich teste gerade ein Programm das Einstellungen aus der Registry liest. Diese Einstellungen sind im Registrierzweig HKEY_LOCAL_MACHINE untergebracht. Bisher hat das gut funktioniert wenn ich die Anwendung als 32Bit Programm kompiliert habe.

Jetzt habe ich die Anwendung als 64Bit Programm kompiliert und es funktioniert nicht mehr. Wenn ich die Anwendung mit Administratorrechten starte geht es.

Ist das tatsächlich so, dass 64 Bit Anwendungen Administratorrechte benötigen wenn Einstellungen aus der Registry gelesen werden ?? :?

kuba

DeddyH 6. Dez 2011 10:56

AW: Admin Rechte beim Lesen aus Registry 64Bit
 
Hast Du denn auch explizit gesagt, dass Du nur lesen möchtest (z.B. KEY_READ im Create der TRegistry-Instanz angegeben)?

mkinzler 6. Dez 2011 10:57

AW: Admin Rechte beim Lesen aus Registry 64Bit
 
Öffnest du den Schlüssel readonly?

kuba 6. Dez 2011 11:23

AW: Admin Rechte beim Lesen aus Registry 64Bit
 
Zitat:

Zitat von mkinzler (Beitrag 1139690)
Öffnest du den Schlüssel readonly?

Mit ReadOnly geht's, danke !

Warum gibt es zwischen 32Bit und 64Bit einen Unterschied ??

kuba

himitsu 6. Dez 2011 11:38

AW: Admin Rechte beim Lesen aus Registry 64Bit
 
Nicht wirklich, auch mit 32-Bit-Prozessen hat man (in "neueren" Windowsen) standardmäßig keinen Schreibzugriff auf diesen Pfad.

kuba 6. Dez 2011 12:47

AW: Admin Rechte beim Lesen aus Registry 64Bit
 
Zitat:

Zitat von himitsu (Beitrag 1139702)
Nicht wirklich, auch mit 32-Bit-Prozessen hat man (in "neueren" Windowsen) standardmäßig keinen Schreibzugriff auf diesen Pfad.

Seltsam, bisher gabs keine Probleme. Ich teste meine Programme immer mit Windows 7 sowohl 32Bit als auch 64Bit.

kuba

mkinzler 6. Dez 2011 12:50

AW: Admin Rechte beim Lesen aus Registry 64Bit
 
Und arbeitest als normaler Benutzer oder mit aktivierter UAC?

kuba 6. Dez 2011 13:18

AW: Admin Rechte beim Lesen aus Registry 64Bit
 
Zitat:

Zitat von mkinzler (Beitrag 1139724)
Und arbeitest als normaler Benutzer oder mit aktivierter UAC?

Ich verwende immer einen Testuser mit Benutzerrechten. Das hab ich gerade nochmal überprüft. Mit Windows 7 32Bit, funktioniert das Programm. Mit Windows 7 64Bit erhalte ich eine Fehlermeldung wenn das Programm als 64Bit Anwendung kompiliert wurde. Habe auch nochmal mit Windows XP X64 getestet, genau das gleiche Ergebnis.

kuba

Luckie 6. Dez 2011 13:57

AW: Admin Rechte beim Lesen aus Registry 64Bit
 
Zitat:

Zitat von kuba (Beitrag 1139735)
erhalte ich eine Fehlermeldung wenn das Programm als 64Bit Anwendung kompiliert wurde.

Rat mal, was jetzt interessant wäre zu wissen? ;)

kuba 6. Dez 2011 14:10

AW: Admin Rechte beim Lesen aus Registry 64Bit
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von Luckie (Beitrag 1139747)
Zitat:

Zitat von kuba (Beitrag 1139735)
erhalte ich eine Fehlermeldung wenn das Programm als 64Bit Anwendung kompiliert wurde.

Rat mal, was jetzt interessant wäre zu wissen? ;)

Was meinst du ? Wo man Windows XP X64 bekommt oder was ? :lol:
Natürlich teste ich die jeweilige Anwendung (32Bit/64Bit) mit der jeweiligen Windows Plattform ...

Ich lese eine Zeitangabe in der Form 00:05:00 als String. Habe die Fehlermeldung (Windows XP X64) mal angehängt. Mit ReadOnly funktioniert es dann. Ebenso wenn ich die Anwendung als 32Bit Anwendung kompiliert habe.

Hier auch nochmal der Sourcecode:

Delphi-Quellcode:
procedure ReadCountdown(var PW: String);
  Var
    registry: TRegistry;
  Begin
    registry := TRegistry.Create;
    Try
      registry.RootKey := HKEY_LOCAL_MACHINE; ;
      registry.OpenKey(\Software\Test, False);
      PW := registry.ReadString('Zeit');
      registry.CloseKey;
    Finally
      registry.Free;
    End;
End;

Die Umleitung Wow6432Node habe ich selbstverständlich berücksichtigt.

kuba


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:34 Uhr.
Seite 1 von 2  1 2      

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