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;
Nun dann öffnest du den Key mit Adminrechten denn bei mir geht es nicht.
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:
Just use OpenKey instead of OpenKeyReadOnly, this won't reset your
Access property.
siehe
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;