如何从注册表中获取子密钥名称(例如Stk Group \ BISCUIT)?
答案 0 :(得分:5)
您在寻找TRegistry.GetKeyNames(Strings: TStrings);
来自帮助:返回一个字符串列表,其中包含属于当前键的所有子键的名称。
答案 1 :(得分:4)
使用Tregistry
的{{1}}
http://docwiki.embarcadero.com/VCL/en/Registry.TRegistry.GetKeyNames
答案 2 :(得分:0)
function GetRegSubTree( MainKey : LongInt; var aList : TStringList; aKey :
string ) : Boolean;
var
hRoot : HKEY;
lItem : LongInt;
hError : LongInt;
szKey,pData : PChar;
aString : String;
begin
GetRegSubTree:=false;
if aList=Nil then exit;
{create pointers for the API}
szKey := StrAlloc( Length( aKey ) + 1 );
StrPCopy( szKey, aKey );
lItem := 0;
pData := StrAlloc( 1024 );
hError := RegOpenKey( MainKey, szKey, hRoot );
if hError = ERROR_SUCCESS then
begin
while (hError = ERROR_SUCCESS) do
begin
hError := RegEnumKey( hRoot, lItem, pData, 1024 );
if (hError = ERROR_SUCCESS) then
begin
GetRegSubTree:=true;
aList.Add( StrPas( pData ));
Inc(lItem);
end;
end;
RegCloseKey( hRoot );
end;
StrDispose( szKey );
StrDispose( pData );
end;