Mega Code Archive

 
Categories / Delphi / System
 

Enumerate registry keys

Title: enumerate registry keys? { This example demonstrates how to enumerate all registry keys from a certain key (here: HKEY_CURRENT_USER) } { Dieses Beispiel listet alle Einträge eines bestimmten Schlüssels in der Registrierung auf. (hier: HKEY_CURRENT_USER) } uses Registry; procedure TForm1.Button1Click(Sender: TObject); var indent: Integer; procedure EnumAllKeys(hkey: THandle); var l: TStringList; n: Integer; begin Inc(indent, 2); with TRegistry.Create do try RootKey := hkey; OpenKey(EmptyStr, False); l := TStringList.Create; try GetKeynames(l); CloseKey; for n := 0 to l.Count - 1 do begin memo1.Lines.Add(StringOfChar(' ', indent) + l[n]); if OpenKey(l[n], False) then begin EnumAllKeys(CurrentKey); CloseKey; end; end; finally l.Free end; finally Free; end; Dec(indent, 2); end; begin Memo1.Clear; Memo1.Lines.Add('Keys under HKEY_CURRENT_USER'); indent := 0; Memo1.Lines.BeginUpdate; try EnumAllKEys(HKEY_CURRENT_USER); finally Memo1.Lines.EndUpdate; end; end;