registry und Subkey
Hallo
Ich möchte gerne auf einfache weise und ohne Componente den Subkey eines registry schlüssels auslesen. In C# kann man diesen ganz einfach über
Code:
in erfahrung bringen.
string[] subKeyNames = key.GetSubKeyNames();
Wie kann ich das in Delphi verwirklichen. TRegistry stellt ein ähnlich function leider nicht zur verfügung. gruss Emil |
Re: registry und Subkey
Delphi-Quellcode:
TRegistry.GetKeyNames
|
Re: registry und Subkey
Zitat:
Delphi-Quellcode:
if PRegKey.HasSubKeys then
for IntI := 0 to ..... begin subKeyNames := SetLength(string(PRegKey.GetKeyNames(subKeyNames[IntI]), IntI)); end; Mit was nun vergleichen ? GetKeyNames verfügt über keinen Counter wo ich erfahren kann wieviele Subeinträge existieren. Bei subKeyNames wieder ein problme string und TString nicht kompatibel gruss Emil |
Re: registry und Subkey
Es wird eine Stringliste zurückgeliefert, welche die Eigenschaft Count besitzt.
|
Re: registry und Subkey
Zitat:
gruss Emil |
Re: registry und Subkey
Code:
var
x: Integer; sl: TStringlist; begin sl := TStringlist.Create; With TRegistry.Create do begin RootKey := HKEY_LOCAL_MACHINE; If OpenKey('\Software\Microsoft\Windows', false) then begin GetKeynames(sl); For x := 0 to sl.count -1 do begin Showmessage(sl[x]); end; CloseKey; end; free; end; sl.free; |
Re: registry und Subkey
Zitat:
Delphi-Quellcode:
So gehts ..
function BASS_WMPVIS_FindPlugins(): PChar; stdcall;
Var IntI: integer; begin PRegKey := TRegistry.Create; subKeyNames := TStringList.Create; try PRegKey.RootKey := HKEY_LOCAL_MACHINE; PRegKey.Access := KEY_READ; PRegKey.OpenKey('SOFTWARE\Microsoft\MediaPlayer\Objects\Effects', false); if PRegKey.HasSubKeys then PRegKey.GetKeyNames(subKeyNames); for IntI := 0 to subKeyNames.Count -1 do begin Showmessage(subKeyNames[IntI]); end; finally subKeyNames.free; PRegKey.CloseKey; end; Result := FindPluginsPtr; // kommt noch ;) end; Gruss Emil |
Re: registry und Subkey
So ist es OK und kommt alles an.
Delphi-Quellcode:
Danke nochmal
function BASS_WMPVIS_FindPlugins(): PChar; stdcall;
begin PRegKey := TRegistry.Create; subKeyNames := TStringList.Create; try PRegKey.RootKey := HKEY_LOCAL_MACHINE; PRegKey.Access := KEY_READ; PRegKey.OpenKey('SOFTWARE\Microsoft\MediaPlayer\Objects\Effects', false); if PRegKey.HasSubKeys then PRegKey.GetKeyNames(subKeyNames); if subKeyNames.Count <> 0 then begin FindPluginsPtr := StrAlloc(Length(subKeyNames.CommaText) + 1); StrPCopy(FindPluginsPtr, subKeyNames.CommaText); end; subKeyNames.free; PRegKey.CloseKey; except subKeyNames.free; PRegKey.CloseKey; end; Result := FindPluginsPtr; end; Grus Emil |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:27 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