Как получить имя подключа? - PullRequest
1 голос
/ 21 июня 2010

Как получить имя подраздела (например, Stk Group \ BISCUIT) из реестра?

Ответы [ 3 ]

5 голосов
/ 21 июня 2010

Вы ищете TRegistry.GetKeyNames(Strings: TStrings);

Из справки: Возвращает список строк, содержащий имена всех подразделов, принадлежащих текущему ключу.

4 голосов
/ 21 июня 2010

использование Tregistry s GetKeyNames

http://docwiki.embarcadero.com/VCL/en/Registry.TRegistry.GetKeyNames

0 голосов
/ 21 июня 2010
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;
...