Q&A

  • 레지스트리 값 순번을 알아내려면?
레지스트리키아래 이름과 데이타의 순번을 알아오는 방법은 없을까요?



예를들면 좌측창에 아래와 같은 경로가 있고

softwaremicrosoftwindowsCurrentVersionRun



우측에 아래와 같이 되어있다면

이름 데이터

(기본값) (값이 설정되지 않음)

aaaa c:windows....

bbbb c:....

cccc d:windows....



aaaa는 첫번째 bbbb는 두번째 cccc는 세번째라는 integer 순번 값을

구할 수 있는 방법이 없을까요? 루프를 돌리려고 하거든요...

그럼 좋은 연휴 되길...

1  COMMENTS
  • Profile
    최용일 2000.02.21 11:40
    초보 wrote:

    > 레지스트리키아래 이름과 데이타의 순번을 알아오는 방법은 없을까요?

    >

    > 예를들면 좌측창에 아래와 같은 경로가 있고

    > softwaremicrosoftwindowsCurrentVersionRun

    >

    > 우측에 아래와 같이 되어있다면

    > 이름 데이터

    > (기본값) (값이 설정되지 않음)

    > aaaa c:windows....

    > bbbb c:....

    > cccc d:windows....

    >

    > aaaa는 첫번째 bbbb는 두번째 cccc는 세번째라는 integer 순번 값을

    > 구할 수 있는 방법이 없을까요? 루프를 돌리려고 하거든요...

    > 그럼 좋은 연휴 되길...



    Registry 유닛에 있는 TRegistry클래스의 GetKeyNames메소드를 이용하면됩니다..



    procedure GetKeyNames(Strings: TStrings);



    예제



    인자로 TStrings클래스를 넣어주면 되죠...



    procedure DoLoop;

    const

    RegKey = 'softwaremicrosoftwindowsCurrentVersionRun';

    var

    RegList: TRegistry;

    StrList: TStrings;

    I: Integer;

    begin

    RegList := TRegistry.Create;

    StrList := TStrings.Create;

    try

    RegList.OpenKey(RegKey, False);

    RegList.GetKeyNames(StrList);

    for I := 0 to StrList.Count - 1 do

    DoSomething; // 여기에서 하고 싶은 일을 하면 되죠...

    finally

    RegList.Free;

    StrList.Free;

    end;

    end;



    참고로 GetKeyNames가 돌려주는 TStrings에서의 배열 순서와 RegEdit.exe 파일에서 보여

    주는 순서는 다름니다...

    RegEdit.exe에서는 보여 줄때 오름차순으로 정렬을 해서 보여주지만 GetKeyNames가 돌려

    주는 TStrings의 키 순서는 디스크에 저장된 순서입니다. 그러므로 RegEdit.exe에서와

    똑같이 보이게 할려면 TStrings를 정렬을 해야되겠죠...