본문 바로가기

카테고리 없음

[일반/컴포넌트] 특정 레지스트리 키 의 모든 목록을 한방에! 읽어오기

반응형
[팁] 한방에 특정 레지스트리 키 의 모든 목록을 읽어오기

안녕하세여~ 불멸의 화상 구창민입니당

아래 코드를 실행해보시면

특정 레지스트리 키 아래의 목록을 모두 읽어오는것을 보실수 잇을 겁니다.

즐거운 프로그래밍 하시길~~

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;
반응형