Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Daten aus der Registry lesen ..... (https://www.delphipraxis.net/189669-daten-aus-der-registry-lesen.html)

bernhard_LA 7. Jul 2016 11:25

Daten aus der Registry lesen .....
 
wir verwenden folgendes "Code template" um eine Vielzahl von Programm Optionen in der Registry abzuspeichern.

Delphi-Quellcode:
const

  RegistryRootKey = HKEY_CURRENT_USER;


......
  Reg := TRegistry.Create;
  try
    Reg.RootKey := RegistryRootKey;
    Reg.OpenKey(NewRegistryPath, true);
    try
      result := Reg.Read....... ;
    except
      result := false;
    end;
    Reg.CloseKey;
  finally
    Reg.Free;
  end;

Das ganze funktioniert auf einer Vielzahl von Rechneren auch ohne Probleme. Allerdings gibt es Rechner bei denen wenn sich Benutzer A anmeldet alles klappt und dann beim Benutzer B ist der Zugriff auf die Daten in der Registry nicht möglich. Mit RegEdit sehe ich aber auch beim Benutzer B die richtigen Daten.

What to do ?????

mm1256 7. Jul 2016 11:51

AW: Daten aus der Registry lesen .....
 
Mach ich auch so ähnlich, ausser, dass ich beim Lesen OpenKeyReadOnly() verwende. Hilft dir zwar jetzt nicht direkt weiter, aber einen Versuch wäre es vielleicht wert. Das Problem hatte ich jedenfalls noch nicht.

DeddyH 7. Jul 2016 12:04

AW: Daten aus der Registry lesen .....
 
Ich würde auch vorschlagen, entweder OpenKeyReadOnly zum reinen Lesen zu verwenden, oder eine Zeile einmal testhalber abzuändern:
Delphi-Quellcode:
Reg := TRegistry.Create(KEY_READ);

Der schöne Günther 7. Jul 2016 12:16

AW: Daten aus der Registry lesen .....
 
"RegEdit" verweist beim Benutzer auf die passende 32/64-Bit exe. Wenn du auf einem 64-Bit-System "regedit.exe" aufrufst ist das was deine 32 Bit-Anwendung unter
HKCU\Software\myStuff sieht in regedit allerdings unter
HKCU\Software\Wow6432Node\myStuff zu finden.

Siehe: https://msdn.microsoft.com/en-us/lib...(v=vs.85).aspx

Du kannst bei deinem TRegistry-Objekt explizit sagen dass du den 64-Bit-View möchtest, soweit existent.

Dalai 7. Jul 2016 13:37

AW: Daten aus der Registry lesen .....
 
@Günther: Nope, HKCU\Software ist nicht umgeleitet/redirected, im Gegensatz zu HKLM\Software.

MfG Dalai

bernhard_LA 7. Jul 2016 13:40

AW: Daten aus der Registry lesen .....
 
32 bit / 64 bit Unterschiede würde ich ausschließen als Fehlerursache .
Ich habe für beide WIN 7 (X32) und WIN 7 (x64) fehlerfrei laufende Installation.

Auf WIN 7 (X 64) laufen auch nur X 64 compilierte Versionen unserer Anwendung

rapante 7. Jul 2016 14:06

AW: Daten aus der Registry lesen .....
 
Liegt es u.U. an den Benutzerrechten?
Was ist wenn du dein Programm als Admin startest?

bernhard_LA 7. Jul 2016 14:33

AW: Daten aus der Registry lesen .....
 
Admin Start von Programmen ist definitiv gesperrt für den user B auf einem Rechner. Aber HKEY_current_user sollte ja genau deshalb ohne Admin Right lesen und schreiben erlauben; Es gibt ja auch Beispiele wo es in dieser Config auch für user B funktioniert.

rapante 7. Jul 2016 14:52

AW: Daten aus der Registry lesen .....
 
Ja schon klar, dass das normalerweise so funktioniert. Aber es klappt ja bei dir auf einigen PCs nicht. So könntest du erstmal schauen ob es mit den Rechten zusammenhängt.
Wie sehen denn die Berechtigungen von HKCU aus?

Dalai 7. Jul 2016 14:58

AW: Daten aus der Registry lesen .....
 
Ich schließe mich Otto und Detlef an: Schlüssel nur lesend öffnen, denn genau das tut RegEdit auch, solange man keine Werte ändert.

MfG Dalai


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:33 Uhr.
Seite 1 von 3  1 23      

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