AGB  ·  Datenschutz  ·  Impressum  







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

Zugriff auf Classes\CLSID

Ein Thema von venice2 · begonnen am 4. Jul 2020 · letzter Beitrag vom 5. Jul 2020
Antwort Antwort
venice2
(Gast)

n/a Beiträge
 
#1

Zugriff auf Classes\CLSID

  Alt 4. Jul 2020, 17:14
Ich mache folgendes.

Delphi-Quellcode:
PRegKey.RootKey := HKEY_LOCAL_MACHINE;
FilePath := 'SOFTWARE\Classes\CLSID';
PRegKey.OpenKey(FilePath, False);

if PRegKey.HasSubKeys then
begin
  PRegKey.GetKeyNames(subKeyFilePath);
  PRegKey.CloseKey;
end;
Man geht eigentlich davon aus CLSID jede menge an SubKeys zur verfügung stellt.
Nur warum werden diese nicht mit PRegKey.HasSubKeys erkannt?

Gibt es hier einen Trick den ich anwenden muss um Zugriff zu bekommen?
Eigentlich sollte der gewährt sein beim lesen.

Nebenbei.
Kann man überhaupt eine ActiveX DLL mit FreeLibrary freigeben?
Falls nicht dann kann ich mir das sparen.

Geändert von venice2 ( 4. Jul 2020 um 17:37 Uhr)
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Zugriff auf Classes\CLSID

  Alt 4. Jul 2020, 17:55
Hallo,
das geht doch nur ReadOnly?
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.857 Beiträge
 
Delphi 12 Athens
 
#3

AW: Zugriff auf Classes\CLSID

  Alt 4. Jul 2020, 17:57
Ich vermute einmal, dass die Rechte fehlen und OpenKey schlicht false zurück liefert. Den Rückgabewert ignorierst du leider komplett...

Es gibt stattdessen auch OpenKeyReadOnly, für das du weniger Rechte benötigst.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
venice2
(Gast)

n/a Beiträge
 
#4

AW: Zugriff auf Classes\CLSID

  Alt 4. Jul 2020, 18:06
Ich vermute einmal, dass die Rechte fehlen und OpenKey schlicht false zurück liefert. Den Rückgabewert ignorierst du leider komplett...

Es gibt stattdessen auch OpenKeyReadOnly, für das du weniger Rechte benötigst.
Ich ignoriere gar nichts denn ich habe nur das gepostet was im Context zu meiner Frage stand.
Werde es mal mit OpenKeyReadOnly versuchen.

Dann noch mal nicht geschrieben sondern eingefügt. (copy\paste)
Delphi-Quellcode:
            FilePath := 'SOFTWARE\Classes\CLSID\';
            if PRegKey.OpenKey(FilePath, False) then
            begin
              if PRegKey.HasSubKeys then
              begin
                PRegKey.GetKeyNames(subKeyFilePath);
                PRegKey.CloseKey;
              end;
            end;
funktioniert genau sowenig.
Wie komme ich sonst an die Pfade der DLL's ?

Geändert von venice2 ( 4. Jul 2020 um 18:08 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Zugriff auf Classes\CLSID

  Alt 4. Jul 2020, 20:53
Nur weil man die Rückgabewerte (teilweise) auswertet, funktioniert der Code nicht plörlich, wenn er auch Ohne bereits Fehler ausgelöst hatte und sich an der eigentlich Funktion garnichts geändert hat.

Wenn man aber die Rückgaben "richtig" auswerten würde, dann wüsste man wenigstens warum es nicht geht.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
venice2
(Gast)

n/a Beiträge
 
#6

AW: Zugriff auf Classes\CLSID

  Alt 4. Jul 2020, 20:56
Nur weil man die Rückgabewerte (teilweise) auswertet, funktioniert der Code nicht plörlich, wenn er auch Ohne bereits Fehler ausgelöst hatte und sich an der eigentlich Funktion garnichts geändert hat.

Wenn man aber die Rückgaben "richtig" auswerten würde, dann wüsste man wenigstens warum es nicht geht.
Richtig.
Nur es hilft mir leider nicht bei meinem Problem wie ich an den Pfad der DLL komme.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Zugriff auf Classes\CLSID

  Alt 4. Jul 2020, 21:13
Delphi-Quellcode:
FilePath := 'SOFTWARE\Classes\CLSID\';
if PRegKey.OpenKey(FilePath, False) then
begin

end
else
  RaiseLastOSError;
Und schon gelesen was die Anderen schrieben?

Wer möchte raten, was mit Close nach dem Open passiert, wenn es keine SubKeys gibt?
Zitat:
Delphi-Quellcode:
if PRegKey.OpenKey(FilePath, False) then
begin
  if PRegKey.HasSubKeys then
  begin
    ...
    PRegKey.CloseKey;
Ein Therapeut entspricht 1024 Gigapeut.
  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 04:01 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 by Thomas Breitkreuz