Section Commands
이 명령어는 Section 안에서만 기능을 하며, Section 밖에서는 아무런 기능을 하지 못한다. 이 명령어는 인스톨러에게 현재 section은 추가로 "size_bk" 만큼의 kbytes 의 디스크 여유분이 더 필요함을 알리는 명령어 이다.
새로운 section을 시작하는 명령어이다. section 이름을 주지 않거나, '-'로 시작하는 경우에는 숨겨진 section으로 사용자가 사용 못하도록 할 수가 없다. section 이름이 'Uninstall' 이거나 'un.' 으로 시작하는 이름이면 언인스톨러 section이다. section_index_output 이 지정되어 있으면, 파라메터가 section 인덱스와 함께 !defined로 정의된다. 만약 section 이름이 '!'로 시작되면 section 이름은 볼드체로 보여 진다. '/o' 스위치가 지정되면 section은 기본적으로 실행되지 않는다.

Section의 끝을 알리는 명령어 이다. 항상 Section과 짝을 지어 다녀야 함.
InstType 명령어로 인스톨 타입을 줄때 어떤 인스톨 타입에 포함될 것인지 결정하는 명령어이다. InstType은 첫번째부터 1, 2 순서로 인덱싱된다.
SectionGroup 으로 시작되면 반듯이 마지막은 SectionGroupEnd로 끝내야 한다.
Uninstall Section
언인스톨러를 만들려면 'Uninstall' 이라는 이름을 가지는 section을 만들어야 한다. 이 section에서는 인스톨러에 의해서 복사된 파일들이나 레지스트리등을 깨끗하게 지우는 역할을 하게 된다.
위 코드를 보면 2번째줄에 자기자신을 지우는 명령어가 있다. 이것이 가능한 이유는 NSIS로 만들어진 언인스톨러는 자기 자신을 시스템의 temporary 디렉토리에 복사한 후에 실제로 실행을 하므로 지우는게 가능하다.
또 한 주의 깊게 볼 것은 $INSTDIR이 꼭 프로그램이 인스톨 된 경로를 가지고 있는게 아니고, 실제로 실행될때는 언인스톨러가 있는 디렉토리를 저장하고 있다는 점을 명시해야 한다. 즉 언인스톨러를 프로그램이 인스톨된 곳과 다른 곳에 인스톨하게 되면 $INSTDIR은 프로그램이 인스톨 된 곳을 저장하지 않으므로 인스톨러에서 적당한 위치(레지스트리등)에 표시해서 언인스톨러에게 위치를 알려 줘야 한다. 일반적인 경우 언인스톨러는 프로그램 폴더에 같이 인스톨 되므로 크게 신경쓸 필요는 없다.




댓글을 달아 주세요