Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Zugriff auf Registry unter Vista (https://www.delphipraxis.net/103121-zugriff-auf-registry-unter-vista.html)

Chaoten-Joe 10. Nov 2007 12:15


Zugriff auf Registry unter Vista
 
Hallo zusammen,

ich habe ein Problem mit dem Schreib- und Lesezugriff auf die Registry unter Windows Vista. Unter XP hatte bisher alles problemlos geplappt. Der Code sieht bspw. folgendermaßen aus:

Delphi-Quellcode:
Reg := TRegistry.Create;
  try
    Reg.RootKey := HKEY_LOCAL_MACHINE;
    Reg.OpenKey('\Software\Microsoft\Windows\CurrentVersion\InternalCV',True);
    with Reg do
    begin
      installed   :=ReadString('Installed');
      infotext    :=ReadString('Description');
      try
        updates   :=ReadBool('Active');
      except end;
    end;
  finally
    Reg.CloseKey;
    Reg.Free;
    inherited;
  end;
Ich habe es auch schon mit "Reg.RootKey := HKEY_CURRENT_USER" versucht (wegen eventuellem Rechteproblem) - hat aber auch nichts gebracht. :gruebel:

Hat einer ne Idee, woran es liegen kann. Delphi meldet immer eine ERegistryException mit den Meldungen "Fehler beim Setzen bzw. Holen der Daten".

Danke und viele Grüße :hi:

Christian

mkinzler 10. Nov 2007 12:18

Re: Zugriff auf Registry unter Vista
 
Öffne den Key mal ReadOnly

DeddyH 10. Nov 2007 12:19

Re: Zugriff auf Registry unter Vista
 
Und so?
Delphi-Quellcode:
  Reg := TRegistry.Create;
  try
    Reg.RootKey := HKEY_LOCAL_MACHINE;
    if Reg.OpenKeyReadOnly('\Software\Microsoft\Windows\CurrentVersion\InternalCV') then
      with Reg do
      begin
        installed   :=ReadString('Installed');
        infotext    :=ReadString('Description');
        try
          updates   :=ReadBool('Active');
        except end;
      end;
  finally
    Reg.CloseKey;
    Reg.Free;
    inherited;
  end;
Ich habe kein Vista und kann daher nicht testen.

Rakshasa 10. Nov 2007 12:32

Re: Zugriff auf Registry unter Vista
 
Dein Problem wird evtl. in diesem Thread behandelt.

Chaoten-Joe 10. Nov 2007 13:24

Re: Zugriff auf Registry unter Vista
 
Teste ich fleich mal (Readonly) ... Aber ich muss ja auch Daten schreiben! Wie geht das denn?

Bernhard Geyer 10. Nov 2007 14:24

Re: Zugriff auf Registry unter Vista
 
Zitat:

Zitat von Chaoten-Joe
Teste ich fleich mal (Readonly) ... Aber ich muss ja auch Daten schreiben! Wie geht das denn?

Um unter HKLM schreiben zu dürfen benötigt der Prozess die entsprechenden Rechte. Da unter Vista mit aktiven UAC (User Account Control) Prozesse standardmäßig ohne diese Rechte gestartet werden (und auch ab Windows NT erst ab Hauptbenutzer-Gruppe diese Rechte standardmäßig vorhanden sind) mußt du diesen Fall einfach berücksichtigen das du nicht darfst.


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:17 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