Q&A

  • Registry의 Value 읽기


HKEY_LOCAL_MACHINESoftwareDearim에 Angel의 value를 얻고자 합니다.

그런데...

버튼 3을 누르면, 리스트 박스에는 'Angel' 값이 출력되는데,

메시지 박스에는 아무값도 들어가지 않습니다.



제가 문법을 잘 몰라서 그러는 것인지..



꼭 알려주세요... 부탁드려요... ㅜ.ㅡ



procedure TForm1.Button2Click(Sender: TObject);

var

aReg : TRegistry;

Str:TStringList;

i : Integer;

rInfo: TRegKeyInfo;

begin

aReg := TRegistry.Create;

Str := TStringList.Create;

try

aReg.RootKey := HKEY_LOCAL_MACHINE;

aReg.Openkey('SoftwareDearim', True);

aReg.GetKeyInfo(rInfo) ;



aReg.GetkeyNames(Str);

for i := 0 to rInfo.NumSubKeys -1 do

begin

ListBox1.Items.Add(Str.Strings[i]);

showmessage(aReg.Readstring(Str.Strings[i])); <<--요기요...

end;



finally

aReg.CloseKey;

aReg.Free;

Str.Free;

end;

end;

1  COMMENTS
  • Profile
    김일영 2001.10.10 14:11
    안녕하세요.



    정확히는 상황을 모르겠습니다만,

    레지스트리에서 구하고자 하시는게 값(Value)의 데이터(Data)입니까?



    지금(밤중) 델파이가 설치된 환경에 있는게 아니라서 기억뿐이라 정확하지 않지만 GetKeyNames가 값(Value)들을 가져오는건 아닐 겁니다. ^^;



    제가 알기론 키(Key)는 계층 구조 자체이고

    값(Value)가 데이터(Data)를 가지고 있는 것으로 기억하는데요.

    (맞을걸요. ^^;)



    델파이 헬프에서 조금만 더 찾아보시길...





    [질문]레지스트리에 쓰기 wrote:

    >

    > HKEY_LOCAL_MACHINESoftwareDearim에 Angel의 value를 얻고자 합니다.

    > 그런데...

    > 버튼 3을 누르면, 리스트 박스에는 'Angel' 값이 출력되는데,

    > 메시지 박스에는 아무값도 들어가지 않습니다.

    >

    > 제가 문법을 잘 몰라서 그러는 것인지..

    >

    > 꼭 알려주세요... 부탁드려요... ㅜ.ㅡ

    >

    > procedure TForm1.Button2Click(Sender: TObject);

    > var

    > aReg : TRegistry;

    > Str:TStringList;

    > i : Integer;

    > rInfo: TRegKeyInfo;

    > begin

    > aReg := TRegistry.Create;

    > Str := TStringList.Create;

    > try

    > aReg.RootKey := HKEY_LOCAL_MACHINE;

    > aReg.Openkey('SoftwareDearim', True);

    > aReg.GetKeyInfo(rInfo) ;

    >

    > aReg.GetkeyNames(Str);

    > for i := 0 to rInfo.NumSubKeys -1 do

    > begin

    > ListBox1.Items.Add(Str.Strings[i]);

    > showmessage(aReg.Readstring(Str.Strings[i])); <<--요기요...

    > end;

    >

    > finally

    > aReg.CloseKey;

    > aReg.Free;

    > Str.Free;

    > end;

    > end;