2010-06-21 146 views

回答

5

您是否在尋找TRegistry.GetKeyNames(Strings: TStrings);

從幫助:返回包含屬於當前鍵所有子項的名稱的字符串列表。

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; 
+0

API的時候有一個完美的和更容易使用的包裝類爲他們(TRegistry)? – 2010-06-21 08:08:09

+1

@Marjan Venema,僅當您希望您的可執行文件的大小盡可能小時 – Luthfi 2010-10-14 00:14:41

+0

+1 DonnVall。對我而言,我使用最原生/最簡單的方式來縮小尺寸。 – XBasic3000 2010-10-14 01:29:24