Modern UI 메뉴얼에 있는 basic.nsi에 있는 내용들에 대해서 자세하게 이해해 보도록 하자.



18 : 인스톨 디렉토리를 $INSTDIR에 저장하는 명령어이다.

21 : 지정된 레지스트리에 값이 있으면 그 값을 사용해서 18번째줄에서 $INSTDIR에 지정한 값을 덮어 쓰게 된다. 아무런 값이 없으면 $INSTDIR은 18번째줄에서 지정한 값을 그대로 가지게 된다. HKCU는 레지스트리중에서 HKEY_CURRENT_USER를 뜻한다.

26 : MUI_ABORTWARNING 매크로는 사용자가 인스톨러를 닫을려고 할때 경고 메시지를 보여 주는 창을 보여 주라는 매크로이다.

31~37 : 인스톨시 보여주는 페이지 4개와 언인스톨시 보여주는 페이지 2개를 삽입하는 내용이다. 인스톨시 보여주는 화면은 라이센스 화면, 컴포넌트 화면, 인스톨 디렉토리 화면, 파일 인스톨 하는 화면등이다. 언인스톨시에는 언인스톨 확인 화면, 파일을 실제로 언인스톨하는 화면등으로 구성됨을 할 수 있다.

42 : 인스톨시에 사용되는 언어가 "English"임을 표시하는 매크로이다.

47 ~ 59 : 실제로 인스톨시에 할 작업들을 구성하는 섹션이다. 54번째줄은 인스톨한 디렉토리를 레지스트리에 쓰는 과정이다. 57번째줄은 언인스톨러를 만드는 과정이다.

65 : LangString은 인스톨러를 다양한 언어용으로 만들 경우에 유용한 명령어 이다. 그 사용법은 NSIS 메뉴얼에 있는 아래 예제를 가지고 생각해 보자.

 LangString message ${LANG_ENGLISH} "English message"
 LangString message ${LANG_FRENCH} "French message"
 LangString message ${LANG_KOREAN} "Korean message"

 MessageBox MB_OK "A translated message: $(message)"
위와 같이 하나의 변수에 다양한 언어용으로 값을 저장할 수 있다. 그래서 실제로 사용할때는 그 변수 하나만 사용함으로써 편하게 사용할 수 있다. 이는 원래 코드에 있는 42번째줄에서 셋탕한 언어용 값이 나오게 된다. 여기서는 "English" 하나의 언어만 사용하므로 65번째줄에서 그 값을 ${LANG_ENGLISH}라는 id로 DESC_SecDummy 변수에 저장했다. 이는 69번째줄에서 보는 것처럼 사용하면 된다.그러면 언어 셋팅에 따라서 맞는 id의 값을 사용하게 된다.

68 ~ 70 : 인스톨시 컴포넌트 페이지에서 컴포넌트위에 마우스를 가져 갔을때 그 설명을 보여 주는 것을 보여 주는 부분이다. 여기서는 컴포넌트가 하나뿐이라서 MUI_DESCRIPTION_TEXT가 하나 뿐이지만, 만약 여러개의 컴포넌트이면 그 만큼 MUI_DESCRIPTION_TEXT를 추가 하면 된다.

75 ~ 85 : 언인스톨러에 대한 내용이다. 79번째줄에서 언인스톨러를 삭제하고, 81번째줄에서 인스톨했던 디렉토리를 지우며, 83번째줄에서 레지스트리를 지우라는 명령어이다. DeleteRegKey에서 /ifempty 옵션이 사용됐으므로 레지스트리 키가 다른 하위키를 가지고 있지 않을 경우에만 레지스트리를 삭제하라는 명령이다.



크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)

트랙백을 보내세요

트랙백 주소 :: http://www.cipher.pe.kr/tt/cipher/trackback/155

댓글을 달아 주세요

[로그인][오픈아이디란?]
비밀글 (Serect)
댓글 달기 (Submit)