![]() |
Zugriff auf Classes\CLSID
Ich mache folgendes.
Delphi-Quellcode:
Man geht eigentlich davon aus CLSID jede menge an SubKeys zur verfügung stellt.
PRegKey.RootKey := HKEY_LOCAL_MACHINE;
FilePath := 'SOFTWARE\Classes\CLSID'; PRegKey.OpenKey(FilePath, False); if PRegKey.HasSubKeys then begin PRegKey.GetKeyNames(subKeyFilePath); PRegKey.CloseKey; end; 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. |
AW: Zugriff auf Classes\CLSID
Hallo,
das geht doch nur ReadOnly? |
AW: Zugriff auf Classes\CLSID
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. |
AW: Zugriff auf Classes\CLSID
Zitat:
Werde es mal mit OpenKeyReadOnly versuchen. Dann noch mal nicht geschrieben sondern eingefügt. (copy\paste)
Delphi-Quellcode:
funktioniert genau sowenig.
FilePath := 'SOFTWARE\Classes\CLSID\';
if PRegKey.OpenKey(FilePath, False) then begin if PRegKey.HasSubKeys then begin PRegKey.GetKeyNames(subKeyFilePath); PRegKey.CloseKey; end; end; Wie komme ich sonst an die Pfade der DLL's ? |
AW: Zugriff auf Classes\CLSID
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. |
AW: Zugriff auf Classes\CLSID
Zitat:
Nur es hilft mir leider nicht bei meinem Problem ![]() |
AW: Zugriff auf Classes\CLSID
Delphi-Quellcode:
Und schon gelesen was die Anderen schrieben?
FilePath := 'SOFTWARE\Classes\CLSID\';
if PRegKey.OpenKey(FilePath, False) then begin end else RaiseLastOSError; Wer möchte raten, was mit Close nach dem Open passiert, wenn es keine SubKeys gibt? Zitat:
|
AW: Zugriff auf Classes\CLSID
Zitat:
Schon gelesen? Zitat:
Ob ich dann RaiseLastOSError; auswerte ist doch eine ganz andere Geschichte. Alles andere hat schon seine Richtigkeit. Ich kann den Key nicht öffnen versuche es doch einfach einmal. Danke! |
AW: Zugriff auf Classes\CLSID
Ich kann - mit einer marginalen Modifizierung deines Codes gemäß der Empfehlung von Sebastian:
Delphi-Quellcode:
FilePath := 'SOFTWARE\Classes\CLSID\';
if PRegKey.OpenKeyReadOnly(FilePath) then begin if PRegKey.HasSubKeys then begin PRegKey.GetKeyNames(subKeyFilePath); PRegKey.CloseKey; end; end; |
AW: Zugriff auf Classes\CLSID
Zitat:
Gleicher Code. (Ich öffne den Key in einer DLL, vergessen zu sagen) Auch nicht mit 'SOFTWARE\Classes\Wow6432Node\CLSID'; EDIT. bzgl. OpenKeyReadOnly und OpenKey Zitat:
![]() Nochmal komplett. Ohne PRegKey.CloseKey; wird aber verwendet
Delphi-Quellcode:
PRegKey := TRegistry.Create(KEY_READ);
PRegKey.RootKey := HKEY_LOCAL_MACHINE; FilePath := 'SOFTWARE\Classes\Wow6432Node\CLSID'; // ob ich direkt auf Wow6432Node gehe oder nicht sollte eigentlich egal sein. if PRegKey.OpenKey(FilePath, False) then begin if PRegKey.HasSubKeys then begin PRegKey.GetKeyNames(subKeyFilePath); PRegKey.CloseKey; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:42 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