AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Registry-Eintrag wird nicht gelesen

Ein Thema von renew · begonnen am 17. Jul 2020 · letzter Beitrag vom 20. Jul 2020
Antwort Antwort
renew

Registriert seit: 22. Jun 2020
20 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

Registry-Eintrag wird nicht gelesen

  Alt 17. Jul 2020, 12:36
Hallo zusammen,

ich habe Probleme bei Auslesen eines Registry-Werts.
Ich schreibe den Wert mittels
Code:
  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;
in die Registry. Der Wert wird auch im RegEditor korrekt angezeigt. Wenn ich aber den Wert auslese, ist das Ergebnis ''.
Code:
    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;
Hat jemand einen Tipp für mich?
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: Registry-Eintrag wird nicht gelesen

  Alt 17. Jul 2020, 13:09
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.
  Mit Zitat antworten Zitat
renew

Registriert seit: 22. Jun 2020
20 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#3

AW: Registry-Eintrag wird nicht gelesen

  Alt 17. Jul 2020, 13:16
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.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke
Online

Registriert seit: 10. Jun 2003
Ort: Berlin
9.580 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Registry-Eintrag wird nicht gelesen

  Alt 17. Jul 2020, 15:56
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
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.049 Beiträge
 
Delphi 12 Athens
 
#5

AW: Registry-Eintrag wird nicht gelesen

  Alt 20. Jul 2020, 13:09
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>
  ...
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:20 Uhr.
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