Q&A

  • 레지스트리에 대해...
레지스트리에 어떤 키값의 데이터를 대체하려면 어떻게 해야 하나요.



WriteString('PROG','');(기존값)----->WriteString('PROG','L');(바꾸고자 하는값)



WriteString('PROG','L');으로 다시 쓰니 다른 레지스트리에 등록되고 기존값은 바뀌지 않네요. WriteString이 아닌가요?

3  COMMENTS
  • Profile
    초보 델코 2000.07.20 21:12
    WriteString로 하는거 맞는데..어떤게 구현을 했는지 잘모르겠네요..

    예를 들면

    edit 에서 입력한 값이 Registry에 저장한다면..

    아래와 같이 하면 되겠네요..저도 초보라..^^ 그럼 좋은 하루되세요..



    private

    { Private declarations }

    strConn : string;

    function TForm1.Write: Boolean; //변수을 Registry에 저장



    ..

    ..



    const

    RgKey = 'SoftwaretestRegistrytest'; //입력값 키 위치



    procedure TForm1.Save1Click(Sender: TObject);

    begin

    TestConn := Conn.text;

    WriteRegValues;

    end;



    ...

    ...

    ...



    function TForm1.Write: Boolean;

    .....

    .....



    RootKey := HKEY_LOCAL_MACHINE;

    ....

    ....

    WriteString('test String', TestConn);



    ......

    ....

    .....

    ....



    end;





    김태영 wrote:

    > 레지스트리에 어떤 키값의 데이터를 대체하려면 어떻게 해야 하나요.

    >

    > WriteString('PROG','');(기존값)----->WriteString('PROG','L');(바꾸고자 하는값)

    >

    > WriteString('PROG','L');으로 다시 쓰니 다른 레지스트리에 등록되고 기존값은 바뀌지 않네요. WriteString이 아닌가요?

  • Profile
    정지호 2000.07.20 21:01
    김태영 wrote:

    > 레지스트리에 어떤 키값의 데이터를 대체하려면 어떻게 해야 하나요.

    >

    > WriteString('PROG','');(기존값)----->WriteString('PROG','L');(바꾸고자 하는값)

    >

    > WriteString('PROG','L');으로 다시 쓰니 다른 레지스트리에 등록되고 기존값은 바뀌지 않네요. WriteString이 아닌가요?



    WriteString이 맞습니다.

    문제는 레지스트리의 현재 디렉토리가 어디로 지정되어 있느냐와 키값이름이

    정확하게 되어있느냐에 있는 것 같은데요



    ......

    Regtmp.rootkey:=HKEY_CURRENT_USER;

    if true = Regtmp.OpenKey('softwaretest',false) then

    begin

    Regtmp.WriteString('PROG','L');

    ......



  • Profile
    김태영 2000.07.20 22:25
    >>김태영

    경로도 맞고 키값도 맞는데 자꾸 다른데 값이 들어갑니다. 무슨 원인일까요?

    고수님의 답변을 부탁합니다.



    정지호 wrote:

    > 김태영 wrote:

    > > 레지스트리에 어떤 키값의 데이터를 대체하려면 어떻게 해야 하나요.

    > >

    > > WriteString('PROG','');(기존값)----->WriteString('PROG','L');(바꾸고자 하는값)

    > >

    > > WriteString('PROG','L');으로 다시 쓰니 다른 레지스트리에 등록되고 기존값은 바뀌지 않네요. WriteString이 아닌가요?

    >

    > WriteString이 맞습니다.

    > 문제는 레지스트리의 현재 디렉토리가 어디로 지정되어 있느냐와 키값이름이

    > 정확하게 되어있느냐에 있는 것 같은데요

    >

    > ......

    > Regtmp.rootkey:=HKEY_CURRENT_USER;

    > if true = Regtmp.OpenKey('softwaretest',false) then

    > begin

    > Regtmp.WriteString('PROG','L');

    > ......

    >