![]() |
Registry-Eintrag wird nicht gelesen
Hallo zusammen,
ich habe Probleme bei Auslesen eines Registry-Werts. Ich schreibe den Wert mittels
Code:
in die Registry. Der Wert wird auch im RegEditor korrekt angezeigt. Wenn ich aber den Wert auslese, ist das Ergebnis ''.
reg := TRegistry.Create(KEY_WRITE OR KEY_WOW64_64KEY);
[...] if reg.OpenKey(FRegistryPath, True) then begin try reg.WriteString(FRegistryKey, keyValue); finally reg.CloseKey; end; end;
Code:
Hat jemand einen Tipp für mich?
if (reg.KeyExists(FRegistryPath)) then
begin if reg.OpenKey(FRegistryPath, false) then begin if reg.ValueExists(FRegistryKey) then // => false begin [...] end; [...] try Result := ReadString(FRegistryKey); // Leerstring als Ergebnis, obwohl was im Regeditor angezeigt wird finally reg.CloseKey; end; end; end; |
AW: Registry-Eintrag wird nicht gelesen
Hast du als normaler Benutzer Berechtigungen auf den Registry Schlüssel? Du versucht explizit mit WRITE den Schlüssel zu öffnen. Bei HKEY_LOCAL_MACHINE könnte das problematisch sein. Falls du nicht schreiben sondern nur lesen musst, versuch den Registry Key mal ReadOnly zu öffnen.
|
AW: Registry-Eintrag wird nicht gelesen
danke, das war's. Hatte schon beim Lesen auf "KEY_READ" umgestellt. Aber ohne Erfolg.
Die Umstellung auf HKEY_CURRENT_USER (statt HKEY_LOCAL_MACHINE) brachte Erfolg. Edit: Nur komisch, dass ich den Schlüssel-Wert anlegen durfte, aber nicht mehr auslesen. |
AW: Registry-Eintrag wird nicht gelesen
Solche Schreibzugriffe werden ggf. in den VirtualStore umgeleitet wie auch Dateizugriffe auf das Programmverzeichnis usw., allerdings dachte ich, dass das nur bei alter Software ohne aktuelles Manifest passiert.
Jedenfalls findest du diese Werte dann unter:
Code:
Computer\HKEY_CURRENT_USER\SOFTWARE\Classes\VirtualStore\MACHINE\SOFTWARE
|
AW: Registry-Eintrag wird nicht gelesen
Bei Software, die sich nicht als Kompatibel mit Windows authentifiziert, und alte Software tut das fast nie, aber auch Neue nicht immer, vor allem wenn die Heuristik das nciht als Neu erkennt.
Und das Manifest von Embarcadero macht das vermutlich nicht.
XML-Code:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> ... <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1"> <application> <supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/><!-- Windows Vista and Windows Server 2008 --> <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/><!-- Windows 7 and Windows Server 2008 R2 --> <supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/><!-- Windows 8 and Windows Server 2012 --> <supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/><!-- Windows 8.1 and Windows Server 2012 R2 --> <supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/><!-- Windows 10 and Windows Server 2016/2019 --> </application> </compatibility> ... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:03 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