안녕하세요. 주인장입니다.
우리는 보통 간단한 데이터를 저장하기 위해 SaveSetting 을 사용합니다.
그리고 GetSetting 으로 불러와서 사용하죠.
SaveSetting 의 기본 사용법은 이렇습니다.
SaveSetting App.Title, "Option", "ProgramName", Me.Caption
자 이런식으로 사용을 하면
레지스트리에는
HKEY_CURRNT_USER\Software\VB and VBA Program Settings\
아래에 App.Title 값으로 노드(항목)을 만들고
그 아래 다시 "Option"이라는 노드(항목)을 만든다음
그 안에 "ProgramName" 이라는 키 값을 적은다음 그 값으로 Me.Caption 값을 기록하게 됩니다.
여기까지는 보통 다 아는 사실들이죠.
그런데 저는 여기서 의문점이 생겼습니다.
[ 왜 항상 App.Title 바로 아래에는 값을 쓰지 못하고 항상 하위 노드를 만들어서 그 안에 키값을 넣어야 하는걸까? ]
위의 예에서 보자면 "Option" 이라는 하위 노드를 만들어서 그 안에 값을 넣어야 하죠.
[ 만약 Option 아래 또 하위 노드를 만들려면 어떻게 해야하지? ]
이 두가지 궁금증이 생겼죠.
그런데 의외로 하위노드는 쉽게 풀렸습니다.
SaveSetting App.Title, "Option\1", "ProgramName", Me.Caption
이렇게 하니 Option 밑에 1이라는 하위 노드가 생겨 그 안에 키값이 생성되는겁니다.
아 "\" 이 문자를 이용하면 되는구나 !!! 였습니다.
그럼 맨 상위 노트에 값을 기록해보죠.
밑에 값이 없으면 될꺼야!! 라고 생각해서
SaveSetting App.Title, "", "ProgramName", Me.Caption
라고 해 봤습니다.
돌려보니 삑 에러가 나더라구요.
음... 제일 상위 노드에는 값을 어떻게 쓸까...
바로 답은
SaveSetting App.Title, "\", "ProgramName", Me.Caption
이거 였습니다.
이렇게 하니 제일 상위 노드에 떡하니 값이 들어가더라구요.
ㅋㅋ
참고하시라고 올립니다.
첫댓글 한가지 더 재미있는 사실은 SaveSetting "\", "\", 'a", "b" 하니까 아예 HKEY_CURRENT_USER\Software\VB and VBA Program Settings 노드에 a 값이 생성되더군요... ㅋㅋ
그렇군요. 그런데 카페 활동은 왤케 뜸하신지. 가끔 신경써주시는거 같긴 하지만... 부운영자인데... 바쁘신가봐요.
죄송합니다 ^^;; 앞으로 자주 활동할게요 ^^
헐 regwrite 악용이다!
악용..?
허허
감사합니다
감사합니다
감사합니다
감사합니다
잘봣습니다
잘봣습니다