레지스트리키아래 이름과 데이타의 순번을 알아오는 방법은 없을까요?
예를들면 좌측창에 아래와 같은 경로가 있고
softwaremicrosoftwindowsCurrentVersionRun
우측에 아래와 같이 되어있다면
이름 데이터
(기본값) (값이 설정되지 않음)
aaaa c:windows....
bbbb c:....
cccc d:windows....
aaaa는 첫번째 bbbb는 두번째 cccc는 세번째라는 integer 순번 값을
구할 수 있는 방법이 없을까요? 루프를 돌리려고 하거든요...
그럼 좋은 연휴 되길...
> 레지스트리키아래 이름과 데이타의 순번을 알아오는 방법은 없을까요?
>
> 예를들면 좌측창에 아래와 같은 경로가 있고
> 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를 정렬을 해야되겠죠...