Q&A

  • 시스템 등록정보중 환경변수 설정법에 대해...
* 사용환경 : 델파이5 / Windows NT



안녕하세요...

제가 델파이를 이용하여 시스템 등록정보중 환경변수를 설정하고자 합니다.

물론 제어판에서 가능하지만 변경요소가 많은 경우 수동으로 작업하지 않고 프로그램에 등록하였다가 한번에 변경등록할수 있도록하기 위해서 입니다

그래서 몇가지 확인을 해보았는데

역시 환경변수도 레지스트리에 등록이 되어있더군요..

그래서 쉽게 생각하고 레지스트리를 변경하였는데 분명 변경된 내용이 시스템 등록정보에서 확인을 하면 정상적으로 변경된값이 나타납니다.

그런데 문제는 절대로 시스템에서 적용이 되지 않는다는 것입니다.

물론 재부팅을 해도 마찬가지고요...

그래서 다른 레지스트리 항목에 등록이 되어있는지 찾아보아도 역시나 없더군요...

도무지 어떻게 된것인지요...

네트워크관련 정보도 레지스트리에서 수정하면 적용이 되는데...???

정말 혼자 해결하기에는 너무나 힘드네요...

델파이 도움말을 봐도 해결방법이 없구요...

기껏 찾은것은 SetEnvironmentVariable 입니다.

그런데 이것으로도 해결이 되지 않습니다.

어떤 좋은 방법이 없는지요..

아시는분은 도움부탁드립니다.

제겐 꼭 필요한 기능이거든요....

도와주시면 후사하겠습니다.

그럼 많은 분들의 도움부탁드립니다...

2  COMMENTS
  • Profile
    구창민 2001.10.31 03:40
    님이 찾아내신 게 맞습니다.



    다 찾으셔놓구..^_^;



    환경변수를 읽어올땐,



    GetEnvironmentVariable('환경변수명', Buffer{읽은내용을 담을 버퍼}, SizeOf(버퍼의 크기));



    환경변수에 쓸땐,

    SetEnvironmentVariable('환경변수명', 바꿀내용, SizeOf(바꿀내용의크기));



    이런형태로 사용하시면 될겁니다.



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





    전영재 wrote:

    > * 사용환경 : 델파이5 / Windows NT

    >

    > 안녕하세요...

    > 제가 델파이를 이용하여 시스템 등록정보중 환경변수를 설정하고자 합니다.

    > 물론 제어판에서 가능하지만 변경요소가 많은 경우 수동으로 작업하지 않고 프로그램에 등록하였다가 한번에 변경등록할수 있도록하기 위해서 입니다

    > 그래서 몇가지 확인을 해보았는데

    > 역시 환경변수도 레지스트리에 등록이 되어있더군요..

    > 그래서 쉽게 생각하고 레지스트리를 변경하였는데 분명 변경된 내용이 시스템 등록정보에서 확인을 하면 정상적으로 변경된값이 나타납니다.

    > 그런데 문제는 절대로 시스템에서 적용이 되지 않는다는 것입니다.

    > 물론 재부팅을 해도 마찬가지고요...

    > 그래서 다른 레지스트리 항목에 등록이 되어있는지 찾아보아도 역시나 없더군요...

    > 도무지 어떻게 된것인지요...

    > 네트워크관련 정보도 레지스트리에서 수정하면 적용이 되는데...???

    > 정말 혼자 해결하기에는 너무나 힘드네요...

    > 델파이 도움말을 봐도 해결방법이 없구요...

    > 기껏 찾은것은 SetEnvironmentVariable 입니다.

    > 그런데 이것으로도 해결이 되지 않습니다.

    > 어떤 좋은 방법이 없는지요..

    > 아시는분은 도움부탁드립니다.

    > 제겐 꼭 필요한 기능이거든요....

    > 도와주시면 후사하겠습니다.

    > 그럼 많은 분들의 도움부탁드립니다...

  • Profile
    전영재 2001.11.01 04:53
    저도 님께서 알려주신것처럼 사용을 해보았지만 않되더군요...

    작성한 프로그램내에서는 얼마든지 적용이 가능합니다.

    그런데 제가 필요로 한 내용은 환경변수를 저장하면 실제 윈도우 환경변수로 등록되어 언제든지(재부팅이후에라도, 또는 다른 프로그램에서도) 사용하고자 함입니다.

    그런데 분명히 읽어오는것은 현재 윈도우의 환경변수를 읽어오는것은 확실한데 도무지 환경변수를 저장하는것은 그렇지가 못하네요...

    오로지 저장한 시점의 프로세서에서만 적용이 되네요...

    물론 프로세서가 종료되고나면 더이상 유효하지 않고요...

    이러한 현상이 어떻게 된것인지요...

    윈도우에서 도스창을 띄운후 환경설정을 하면 그 도스창에서 실행되는 프로그램에서만 적용이 되고 도스창을 닫으면 사라지는것과 동일하더군요...

    어떻게 해결할수 있는 방법이 없겠는지요...

    꼭 답변부탁드립니다...

    그럼...







    구창민 wrote:

    > 님이 찾아내신 게 맞습니다.

    >

    > 다 찾으셔놓구..^_^;

    >

    > 환경변수를 읽어올땐,

    >

    > GetEnvironmentVariable('환경변수명', Buffer{읽은내용을 담을 버퍼}, SizeOf(버퍼의 크기));

    >

    > 환경변수에 쓸땐,

    > SetEnvironmentVariable('환경변수명', 바꿀내용, SizeOf(바꿀내용의크기));

    >

    > 이런형태로 사용하시면 될겁니다.

    >

    > 그럼~~ 항상 즐거운 프로그래밍 하시길~~~~~

    >

    >

    > 전영재 wrote:

    > > * 사용환경 : 델파이5 / Windows NT

    > >

    > > 안녕하세요...

    > > 제가 델파이를 이용하여 시스템 등록정보중 환경변수를 설정하고자 합니다.

    > > 물론 제어판에서 가능하지만 변경요소가 많은 경우 수동으로 작업하지 않고 프로그램에 등록하였다가 한번에 변경등록할수 있도록하기 위해서 입니다

    > > 그래서 몇가지 확인을 해보았는데

    > > 역시 환경변수도 레지스트리에 등록이 되어있더군요..

    > > 그래서 쉽게 생각하고 레지스트리를 변경하였는데 분명 변경된 내용이 시스템 등록정보에서 확인을 하면 정상적으로 변경된값이 나타납니다.

    > > 그런데 문제는 절대로 시스템에서 적용이 되지 않는다는 것입니다.

    > > 물론 재부팅을 해도 마찬가지고요...

    > > 그래서 다른 레지스트리 항목에 등록이 되어있는지 찾아보아도 역시나 없더군요...

    > > 도무지 어떻게 된것인지요...

    > > 네트워크관련 정보도 레지스트리에서 수정하면 적용이 되는데...???

    > > 정말 혼자 해결하기에는 너무나 힘드네요...

    > > 델파이 도움말을 봐도 해결방법이 없구요...

    > > 기껏 찾은것은 SetEnvironmentVariable 입니다.

    > > 그런데 이것으로도 해결이 되지 않습니다.

    > > 어떤 좋은 방법이 없는지요..

    > > 아시는분은 도움부탁드립니다.

    > > 제겐 꼭 필요한 기능이거든요....

    > > 도와주시면 후사하겠습니다.

    > > 그럼 많은 분들의 도움부탁드립니다...