NSIS_MUI_reference
소개
NSIS 2 는 사용자 정의 인터페이스를 사용해서 인스톨러를 만들 수 있습니다. Modern UI 는 최근의 윈도에서 사용되는 마법사와 같은 형태의 인터페이스를 갖추고 있습니다.
이 새로운 인터페이스는 또한 새로운 기능페이지(환영,종료,시작메뉴) 와 컴포넌트 페이지의 설명영역을 제공합니다. 인터페이스와 그래픽은 모두 제공된 설정을 이용하여 조절할 수 있습니다.
Modern UI 매크로와 언어파일로 인터페이스 스크립트를 작성하는 것은 매우 쉽습니다. 이 문서는 Modern UI 스크립트를 작성하고 참조할 모든 설정 정보를 포함하고 있습니다.
중요: Modern UI 는 자신만의 매크로 시스템을 가지고 있기 때문에 기본 설정이나 많은 새로운 기능, 인터페이스 환경설정은 다르게 작용합니다. 따라서, LicenseText, Icon, CheckBitmap, InstallColors 등과 같은 커맨드를 사용하면 안됩니다.(주 - 즉, InstallColors 등과 같은 커맨드와 같은 결과를 Modern UI 매크로를 사용해서 해야합니다).
사용법
Modern UI 는 매크로 시스템을 가지고 있고 인터페이스를 제어하기 위한 모든 코드가 이미 작성되어 있습니다.
새롭게 Modern UI 스크립트를 시작하거나 기존의 Classic UI 에서 업그레이드하려면 아래와 같은 방법을 따르십시요.
예제 스크립트를 살펴보면 Modern UI에 대하여 많은 도움이 될 것 입니다.
문법
몇 가지 선언 (예. MUI_COMPONENTSPAGE_SMALLDESC) 은 값을 필요로 하지 않으며 그것들은 참/거짓의 설정을 가집니다. 나머지 (예. MUI_UI) 것들은 값을 선언하는데 쓰입니다.
매개변수는 다음과 같은 형식을 따릅니다: required (option1 | option2) [optional]
선언된 설정에 대한 매개변수는 하나의 문자열안에 포함되어야 합니다:
!define MUI_COMPONENTSPAGE_SMALLDESC ; 값이 없음
!define MUI_UI "myUI.exe" ; MUI_UI에 myUI.exe 라는 값을 대입
!define MUI_INSTFILESPAGE_COLORS "FFFFFF 000000" ;두개의 설정값을 하나의 문자열로 묶음
어떤 값 (예. 문자열) 을 언어에 따라 지정하려면 언어 문자열을 지정하고(LangString 명령 사용) $(STRINGNAME)을 값으로 선언합니다. 라이센스 문자열에 대해서는 라이센스 언어 문자열(LicenselangString) 명령을 사용합니다.
Modern UI 문자열 안에서 " 를 추가하려면 반드시 $\" 와 같이 이스케이프 문자열을 사용해야합니다. 왜냐하면 Modern UI 매크로는 " 를 매개변수 분리자로 사용합니다.
1. 헤더 파일
!include "MUI.nsh"
MUI.nsh 는 Include 디렉토리안에 있기때문에 따로 경로를 설정할 필요가 없습니다.
인터페이스 설정은 반드시 페이지 매크로 앞에 설정해야합니다. 페이지 인터페이스 설정은 특정 형태의 모든 페이지들에 적용됩니다.
MUI_ICON icon_file
인스톨러 아이콘을 설정합니다.
Default: ${NSISDIR}\Contrib\Graphics\Icons\modern-install.ico
MUI_UNICON icon_file
언인스톨러 아이콘을 설정합니다.
Default: ${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico
MUI_HEADERIMAGE
페이지의 헤더 이미지를 나타냅니다.
MUI_HEADERIMAGE_BITMAP bmp_file
인스톨러 페이지들의 헤더에 나타낼 비트맵 이미지를 설정합니다. (권장 크기: 150x57 픽셀).
기본값: ${NSISDIR}\Contrib\Graphics\Header\nsis.bmp
MUI_HEADERIMAGE_BITMAP_NOSTRETCH
필드의 크기에 맞추어 비트맵 이미지를 늘리지 않습니다. 가지고 있는 이미지가 전체 공간을 사용하지 않을때만 이 옵션을 사용하십시요. 만약 정확히 맞는 크기의 이미지를 가지고 있다면 필드의 사이즈는 사용자의 DPI 설정이 변함에 따라 변하기 때문에 사용하면 안됩니다.
MUI_HEADERIMAGE_BITMAP_RTL bmp_file
RTL 언어를 사용할 때 인스톨러 페이지들에 나타낼 헤더 이미지를 설정합니다. (권장크기: 150x57 픽셀).
기본값: Non-RTL bitmap
MUI_HEADERIMAGE_BITMAP_RTL_NOSTRETCH
RTL 언어를 사용할 때 필드의 크기에 맞추어 비트맵 이미지를 늘리지 않습니다. 가지고 있는 이미지가 전체 공간을 사용하지 않을때만 이 옵션을 사용하십시요. 만약 정확히 맞는 크기의 이미지를 가지고 있다면 필드의 사이즈는 사용자의 DPI 설정이 변함에 따라 변하기 때문에 사용하면 안됩니다.
MUI_HEADERIMAGE_UNBITMAP bmp_file
언인스톨러 페이지들의 헤더에 나타낼 비트맵 이미지를 설정합니다. (권장크기: 150x57 픽셀.)
기본값: Installer header bitmap
MUI_HEADERIMAGE_UNBITMAP_NOSTRETCH
필드의 크기에 맞추어 비트맵 이미지를 늘리지 않습니다. 가지고 있는 이미지가 전체 공간을 사용하지 않을때만 이 옵션을 사용하십시요. 만약 정확히 맞는 크기의 이미지를 가지고 있다면 필드의 사이즈는 사용자의 DPI 설정이 변함에 따라 변하기 때문에 사용하면 안됩니다.
MUI_HEADERIMAGE_UNBITMAP_RTL bmp_file
RTL 언어를 사용할 때 언인스톨러 페이지들에 나타낼 헤더 비트맵 이미지를 설정합니다. (권장크기: 150x57 픽셀).
기본값: Installer RTL header bitmap
MUI_HEADERIMAGE_UNBITMAP_RTL_NOSTRETCH
RTL 언어를 사용할 때 필드의 크기에 맞추어 비트맵 이미지를 늘리지 않습니다. 가지고 있는 이미지가 전체 공간을 사용하지 않을때만 이 옵션을 사용하십시요. 만약 정확히 맞는 크기의 이미지를 가지고 있다면 필드의 사이즈는 사용자의 DPI 설정이 변함에 따라 변하기 때문에 사용하면 안됩니다.
MUI_HEADERIMAGE_RIGHT
헤더 이미지를 왼편이 아닌 오른편에 출력합니다 (RTL 언어를 사용하면 오른편이 아닌 왼편에 출력됩니다).
MUI_BGCOLOR (색상: RRGGBBR 16진수)
환영, 종료 페이지의 헤더에 대한 배경 색을 지정합니다.
기본값: FFFFFF
MUI_UI ui_file
인터페이스에 적용할 대화상자 리소스 파일을 설정합니다. 이 파일을 변경하여 자신만의 UI를 만들 수 있습니다.
기본값: ${NSISDIR}\Contrib\UIs\modern.exe
MUI_UI_HEADERIMAGE ui_file
비트맵 컨트롤과 헤더 이미지를 위한 공간을 포함하는 대화상자 리소스 IDD_INST를 가진 인터페이스 파일을 설정합니다.
기본값: ${NSISDIR}\Contrib\UIs\modern_headerbmp.exe
MUI_UI_HEADERIMAGE_RIGHT ui_file
비트맵 컨트롤과 오른편에 헤더 이미지를 위한 공간을 포함하는 대화상자 리소스 IDD_INST를 가진 인터페이스 파일을 설정합니다.
기본값: ${NSISDIR}\Contrib\UIs\modern_headerbmpr.exe
MUI_UI_COMPONENTSPAGE_SMALLDESC ui_file
작은 설명 영역을 가진 사용자정의 대화상자 리소스 IDD_SELCOM 을 사진 인터페이스 파일을 설정합니다.
기본값: {NSISDIR}\Contrib\UIs\modern_smalldesc.exe
MUI_UI_COMPONENTSPAGE_NODESC ui_file
설명 영역이 없는 사용자정의 대화상자 리소스 IDD_SELCOM 을 사진 인터페이스 파일을 설정합니다.
기본값: {NSISDIR}\Contrib\UIs\modern_nodesc.exe
MUI_WELCOMEFINISHPAGE_BITMAP bmp_file
환영, 종료 페이지에 대한 비트맵 이미지를 설정합니다 (권장 크기: 164x314 ).
기본값: ${NSISDIR}\Contrib\Graphics\Wizard\win.bmp
MUI_WELCOMEFINISHPAGE_BITMAP_NOSTRETCH
필드의 크기에 맞추어 비트맵 이미지를 늘리지 않습니다. 가지고 있는 이미지가 전체 공간을 사용하지 않을때만 이 옵션을 사용하십시요. 만약 정확히 맞는 크기의 이미지를 가지고 있다면 필드의 사이즈는 사용자의 DPI 설정이 변함에 따라 변하기 때문에 사용하면 안됩니다.
MUI_WELCOMEFINISHPAGE_INI ini_file
환영/종료 페이지에대한 InstallOptions INI 파일을 설정합니다.
기본값: ${NSISDIR}\Contrib\Modern UI\ioSpecial.ini
MUI_UNWELCOMEFINISHPAGE_BITMAP bmp_file
환영/종료 페이지에 대한 비트맵 이미지 (권장 크기: 164x314 픽셀).
기본값: ${NSISDIR}\Contrib\Graphics\Wizard\win.bmp
MUI_UNWELCOMEFINISHPAGE_BITMAP_NOSTRETCH
필드의 크기에 맞추어 비트맵 이미지를 늘리지 않습니다. 가지고 있는 이미지가 전체 공간을 사용하지 않을때만 이 옵션을 사용하십시요. 만약 정확히 맞는 크기의 이미지를 가지고 있다면 필드의 사이즈는 사용자의 DPI 설정이 변함에 따라 변하기 때문에 사용하면 안됩니다.
MUI_UNWELCOMEFINISHPAGE_INI ini_file
언인스톨러 환영/종료 페이지에 대한 InstallOptions INI 파일을 설정합니다.
기본값: ${NSISDIR}\Contrib\Modern UI\ioSpecial.ini
MUI_LICENSEPAGE_BGCOLOR (/windows | /grey | (색상: RRGGBB 16진수))
라이센스 문자열상자의 배경색상을 지정합니다. 윈도 문자열 배경 색상을 설정하려면 /windows 를 사용하십시요(보통 하얀색). 윈도 배경 색을 지정하려면 /grey 를 사용하십시요(보통 회색).
기본값: /windows
MUI_COMPONENTSPAGE_CHECKBITMAP bitmap_file
컴포넌트 선택 트리뷰 선택 비트맵 이미지를 설정합니다.
기본값: ${NSISDIR}\Contrib\Graphics\Checks\modern.bmp
MUI_COMPONENTSPAGE_SMALLDESC
페이지 아래쪽에 작은 설명 영역을 설정합니다. 많은 섹션이 있으며 설명이 많지 않을때 사용하십시요.
MUI_COMPONENTSPAGE_NODESC
설명 영역을 없앱니다.
MUI_INSTFILESPAGE_COLORS (/windows | (전경색: RRGGBB 16진수) (배경색: RRGGBB 16진수))
자세히 화면의 색상을 설정합니다. 기본 윈도 색상을 설정하려면 /windows 를 사용하십시요.
기본값: /windows
MUI_INSTFILESPAGE_PROGRESSBAR ("" | colored | smooth)
진행 막대의 스타일을 설정합니다. Colored 옵션은 MUI_INSTALLCOLORS 를 사용합니다.
기본값: smooth
MUI_FINISHPAGE_NOAUTOCLOSE
자동으로 종료 페이지로 넘어가지 않고 사용자가 설치기록을 점검할 수 있게합니다.
MUI_UNFINISHPAGE_NOAUTOCLOSE
자동으로 종료페이지로 넘어가지 않고 사용자가 설치제거 기록을 살펴볼 수 있게합니다.
MUI_ABORTWARNING
인스톨러를 닫으려고 하면 경고 메시지상자를 출력합니다.
MUI_ABORTWARNING_TEXT text
설치중단 경고 메시지 박스에 출력할 문자열을 지정합니다.
MUI_UNABORTWARNING
언인스톨러를 닫으려고 하면 경고 메시지상자를 출력합니다.
MUI_UNABORTWARNING_TEXT text
중단 경고 메시지 박스에 출력할 문자열을 지정합니다.
3. 페이지
사용하기 원하는 페이지를 설정하려면 아래와 같은 매크로를 추가합니다. 페이지들은 스크립트안에서 추가한 순서대로 정렬되어 나타납니다. 또한, 사용자정의 페이지를 추가하기 위해 매크로들 사이에 사용자정의 Page 명령을 추가할 수 있습니다. 사용자 정의 페이지에 더 많은 정보를 보려면 ...
특정 형태의 복수의 페이지를 추가할 수 있습니다 (예, 복수의 폴더를 선택할 때).
예:
!insertmacro MUI_PAGE_LICENSE "License.rtf"
!insertmacro MUI_PAGE_COMPONENTS
Var STARTMENU_FOLDER
!insertmacro MUI_PAGE_STARTMENU "Application" $STARTMENU_FOLDER
시작메뉴 폴더 매크로를 사용하려면 시작메뉴 폴더 페이지에 대한 페이지 ID가 필요합니다. 시작메뉴폴더는 지정한 변수에 저장됩니다.
인스톨러 페이지
MUI_PAGE_WELCOME
MUI_PAGE_LICENSE text/rtf_file
MUI_PAGE_COMPONENTS
MUI_PAGE_DIRECTORY
MUI_PAGE_STARTMENU page_id variable
MUI_PAGE_INSTFILES
MUI_PAGE_FINISH
언인스톨러 페이지
MUI_UNPAGE_WELCOME
MUI_UNPAGE_CONFIRM
MUI_UNPAGE_LICENSE text/rtf_file
MUI_UNPAGE_COMPONENTS
MUI_UNPAGE_DIRECTORY
MUI_UNPAGE_INSTFILES
MUI_UNPAGE_FINISH
페이지 설정은 하나의 페이지에 적용되며 페이지 매크로를 추가하기 전에 설정해야 합니다. 만약 어떤 형태의 복수개의 페이지를 가지고 있기 이들 모두에 설정하려면 각 페이지 매크로에 앞서 설정을 추가해야합니다. 예:
;사용자가 플러그인 폴더를 선택할 수 있게 디렉토리 페이지 추가
;$PLUGINS_FOLDER 에 선택한 폴더 저장
Var PLUGINS_FOLDER
!define MUI_DIRECTORYPAGE_VARIABLE $PLUGINS_FOLDER
!insertmacro MUI_PAGE_DIRECTORY
알림: 이것은 인스톨러와 언인스톨러 페이지 설정사이에 차이가 없습니다.
MUI_PAGE_HEADER_TEXT text
페이지 헤더에 출력한 문자열을 설정합니다.
MUI_PAGE_HEADER_SUBTEXT text
페이지 헤더에 출력할 하위문자열을 설정합니다.
MUI_WELCOMEPAGE_TITLE title
페이지 상단에 출력할 제목을 설정합니다.
MUI_WELCOMEPAGE_TITLE_3LINES
제목 영역에 여백을 줍니다.
MUI_WELCOMEPAGE_TEXT text
페이지위에 출력할 문자열 설정합니다. 줄을 바꾸려면 \r\n 을 사용하십시요.
MUI_LICENSEPAGE_TEXT_TOP text
페이지 상단에 출력할 문자열을 설정합니다.
MUI_LICENSEPAGE_TEXT_BOTTOM text
페이지 하단에 출력할 문자열을 설정합니다.
MUI_LICENSEPAGE_BUTTON button_text
'I Agree' 버튼에 출력할 문자열을 설정합니다.
MUI_LICENSEPAGE_CHECKBOX
라이센스에 동의하기 위한 체크박스를 출력합니다.
MUI_LICENSEPAGE_CHECKBOX_TEXT text
라이센스에 동의하는 체크박스에 표시할 문자열을 설정합니다.
MUI_LICENSEPAGE_RADIOBUTTONS
라이센스 동의/동의 안함 사이에서 선택할 수 있는 두 개의 라디오 버튼을 출력합니다.
MUI_LICENSEPAGE_RADIOBUTTONS_TEXT_ACCEPT text
라이센스에 동의하는 체크박스에 표시될 문자열을 설정합니다.
MUI_LICENSEPAGE_RADIOBUTTONS_TEXT_DECLINE text
라이센스에 동의하지 않는 체크박스에 표시될 문자열을 설정합니다.
MUI_COMPONENTSPAGE_TEXT_TOP text
페이지 상단에 출력할 문자열.
MUI_COMPONENTSPAGE_TEXT_COMPLIST text
컴포넌트 리스트의 다음 버튼에 출력할 문자열.
MUI_COMPONENTSPAGE_TEXT_INSTTYPE text
설치타입 콤보 박스 다음에 출력할 문자열을 설정합니다.
MUI_COMPONENTSPAGE_TEXT_DESCRIPTION_TITLE text
설명영역의 상단에 출력할 문자열을 설정합니다.
MUI_COMPONENTSPAGE_TEXT_DESCRIPTION_INFO text
섹션이 하나도 선택되지 않았을때 설명 영역에 출력할 문자열을 설정합니다.
MUI_DIRECTORYPAGE_TEXT_TOP text
페이지 상단에 출력할 문자열을 설정합니다.
MUI_DIRECTORYPAGE_TEXT_DESTINATION text
대상 폴더 뼈대에 출력할 문자열을 설정합니다.
MUI_DIRECTORYPAGE_VARIABLE variable
선택한 폴더를 저장할 변수를 지정합니다.
기본값: $INSTDIR
MUI_DIRECTORYPAGE_VERIFYONLEAVE
선택한 폴더가 유효하지 않을 때 다음버튼을 비활성화하는 것이 아니라 유효하지 않은 폴더를 다루는 복귀함수에서 GetInstDirError 를 사용할 수 있게합니다.
단축아이콘을 작성하기 위해 (CreateShortcut 사용) MUI_STARTMENU_WRITE_BEGIN 과 MUI_STARTMENU_WRITE_END 사이에 코드를 넣습니다 매크로:
!insertmacro MUI_STARTMENU_WRITE_BEGIN page_id
...create shortcuts...
!insertmacro MUI_STARTMENU_WRITE_END
The page ID should be the ID of the page on which the user has selected the folder for the shortcuts you want to write.
MUI_STARTMENUPAGE_TEXT_TOP text
페이지 상단에 출력할 문자열을 설정합니다.
MUI_STARTMENUPAGE_TEXT_CHECKBOX text
시작메뉴 폴더 생성을 비활성화하는 체크박스 다음에 출력할 문자열을 설정합니다.
MUI_STARTMENUPAGE_DEFAULTFOLDER folder
기본 시작메뉴 폴더를 설정합니다.
MUI_STARTMENUPAGE_NODISABLE
시작메뉴 단축아이콘을 비활성화하는 체크박스를 출력하지 않습니다.
MUI_STARTMENUPAGE_REGISTRY_ROOT root
MUI_STARTMENUPAGE_REGISTRY_KEY key
MUI_STARTMENUPAGE_REGISTRY_VALUENAME value_name
시작 메뉴 폴더를 저장할 레지스트리 키를 설정합니다. 이 페이지는 사용자의 기호를 기억하기 위해 사용합니다. 또한, 시작메뉴 폴더를 삭제하기 위해 언인스톨러에서도 사용해야합니다. 설치제거중에 이 키를 삭제하는 것을 잊으면 안됩니다.
언인스톨러의 경우, 시작 메뉴 폴더를 얻으려면 MUI_STARTMENU_GETFOLDER 매크로를 사용하세요:
!insertmacro MUI_STARTMENU_GETFOLDER page_id $R0
Delete "$SMPROGRAMS\$R0\Your Shortcut.lnk"
MUI_INSTFILESPAGE_FINISHHEADER_TEXT text
설치가 완료 되었을 때 설치 페이지 상단에 출력할 문자열을 설정합니다. ( MUI_U(UN)FINISHPAGE_NOAUTOCLOSE 가 설정되지 않으면 출력되지 않습니다).
MUI_INSTFILESPAGE_FINISHHEADER_SUBTEXT text
설치가 완료 되었을 때 설치 페이지 상단에 출력할 하위문자열을 설정합니다. ( MUI_U(UN)FINISHPAGE_NOAUTOCLOSE 가 설정되지 않으면 출력되지 않습니다).
MUI_INSTFILESPAGE_ABORTHEADER_TEXT text
설치가 중단 되었을 때 설치 페이지 상단에 출력할 문자열을 설정합니다.
MUI_INSTFILESPAGE_ABORTHEADER_SUBTEXT text
설치가 중단 되었을 때 설치 페이지 상단에 출력할 하위문자열을 설정합니다.
MUI_FINISHPAGE_TITLE title
페이지 상단에 출력할 제목.
MUI_FINISHPAGE_TITLE_3LINES
제목 영역에 여백을 줍니다.
MUI_FINISHPAGE_TEXT text
페이지에 출력할 문자열을 설정합니다. 줄을 바꾸려면 \r\n 을 사용하세요.
MUI_FINISHPAGE_TEXT_LARGE
문자열 영역의 여백을 줍니다. (만약 체크박스를 사용할때).
MUI_FINISHPAGE_BUTTON text
종료 버튼 문자열을 설정합니다.
MUI_FINISHPAGE_TEXT_REBOOT text
시스템 재부트를 위해 종료 페이지에 출력할 문자열을 설정합니다. 줄을 바꾸려면 \r\n 을 사용하세요.
MUI_FINISHPAGE_TEXT_REBOOTNOW text
'지금 재부팅' 옵션 버튼의 문자열을 바꿉니다.
MUI_FINISHPAGE_TEXT_REBOOTLATER text
'나중에 리부팅' 옵션 버튼에 출력할 문자열을 바꿉니다.
MUI_FINISHPAGE_RUN exe_file
체크박스를 이용하여 사용자가 실행 할 프로그램을 선택합니다. 파일 이름이 공백을 포함할 때 따옴표로 묶을 필요가 없습니다.
MUI_FINISHPAGE_RUN_TEXT text
'프로그램 실행' 체크박스에 표시할 문자열을 설정합니다.
MUI_FINISHPAGE_RUN_PARAMETERS parameters
실행할 프로그램의 매개변수를 설정합니다. 값안에서 "는 반드시 $\" 로 사용해야 하는 것을 잊지 마세요.
MUI_FINISHPAGE_RUN_NOTCHECKED
'프로그램 실행' 체크박스를 기본값으로 비활성화 합니다.
MUI_FINISHPAGE_RUN_FUNCTION function_name
프로그램 실행 대신 함수를 호출합니다 (MUI_FINISHPAGE_RUN 매개변수 없이 선언). 여러 프로그램을 실행하거나 체크박스 이름을 변경하고 다른 여러가지를 하려면 이 기능을 사용하세요.
MUI_FINISHPAGE_SHOWREADME file/url
체크박스를 사용해서 볼 파일이나 웹사이트를 선택합니다. 파일이름이 공백을 포함할 때 따옴표로 묶을 필요가 없습니다.
MUI_FINISHPAGE_SHOWREADME_TEXT text
'Show ReadMe' 체크박스에 표시할 문자열을 설정합니다.
MUI_FINISHPAGE_SHOWREADME_NOTCHECKED
'Show ReadMe' 체크박스를 기본으로 비활성화 합니다.
MUI_FINISHPAGE_SHOWREADME_FUNCTION function_name
파일을 보는 대신에 함수를 호출합니다 (MUI_FINISHPAGE_SHOWREADME 를 매개변수 없이 선언). 여러 파일을 보거나 체크박스 이름을 변경시키고 다른 여러가지를 하려면 이 기능을 사용하세요.
MUI_FINISHPAGE_LINK link_text
파일이나 웹사이트를 보기위해 클릭할 링크에 표시될 문자열을 설정합니다.
MUI_FINISHPAGE_LINK_LOCATION file/url
링크를 사용해서 볼 파일이나 웹사이트를 선택합니다. 파일이름이 공백을 포함할 때 따옴표로 묶을 필요가 없습니다.
MUI_FINISHPAGE_LINK_COLOR (색상: RRGGBB 16진수)
종료 페이지에 출력할 링크의 문자열 색상을 설정합니다.
기본값: 000080
MUI_FINISHPAGE_NOREBOOTSUPPORT
사용자가 시스템을 리부트 하는 기능을 비활성화합니다. 만약 /REBOOTOK 플래그나 SetRebbotFlag 를 사용하지 않는다면 약간의 공간 절약을 위해 이 옵션을 선언하세요.
MUI_UNCONFIRMPAGE_TEXT_TOP text
페이지 상단에 출력할 문자열.
MUI_UNCONFIRMPAGE_TEXT_LOCATION text
언인스톨 위치 문자열 상자 다음에 출력할 문자열을 설정합니다.
Modern UI 페이지의 페이지 함수에 사용자 정의 코드를 추가할 수 있습니다. 더 많은 정보를 보려면...
4. 사용자 함수
Modern UI에의해 추가된 함수에 자신만의 코드를 추가하려면 (예. the .onGUIInit 함수와 페이지 함수들), 함수를 만들고 Modern UI 함수가 만든 함수를 호출하게 합니다.
5. 언어 파일
Modern UI 언어 파일을 추가합니다.
!insertmacro MUI_LANGUAGE "English"
Modern UI 언어파일은 NLF 언어파일을 불러오기 때문에 LoadLanguageFile 명령을 사용하면 안됩니다.
언어 선택 대화상자를 출력하려면 아래를 참조하세요 MultiLanguage.nsi 예), MUI_LANGDLL_DISPLAY 매크로를 .onInit 함수에 추가합니다:
Function .onInit
!insertmacro MUI_LANGDLL_DISPLAY
FunctionEnd
또한 언인스톨러에 사용하려면 un.onInit 에 사용합니다.
사용자의 기호를 기억하기위해 레지스트리 키를 선언할 수 있습니다.
Note: 이러한 설정은 설치페이지 매크로를 추가하기 전에 선언해야합니다.
MUI_LANGDLL_REGISTRY_ROOT root
MUI_LANGDLL_REGISTRY_KEY key
MUI_LANGDLL_REGISTRY_VALUENAME value_name
언어를 저장할 레지스트리 키를 설정합니다. 사용자의 기호가 저장됩니다. 또한, 언인스톨러에서 올바른 언어를 출력하기위해 사용할 수 있습니다. 언인스톨러에서 이 키를 삭제하는 것을 잊으면 안됩니다.
언인스톨러의 경우, 저장한 언어 기호를 얻기 위하여 MUI_UNGETLANGUAGE 매크로를 un.onInit 에 삽입합니다:
Function un.onInit
!insertmacro MUI_UNGETLANGUAGE
FunctionEnd
언어 선택 대화상자를 조절하려면 MUI_LANGDLL_DISPLAY 매크를 추가하기 전에 선언해야합니다.
MUI_LANGDLL_WINDOWTITLE text
언어 선택 대화상자에 출력할 윈도 제목.
MUI_LANGDLL_INFO text
언어 선택 대화상자에 출력할 문자열을 설정합니다.
MUI_LANGDLL_ALWAYSSHOW
레지스트리에 언어가 저장되어 있어도 무조건 언어선택 대화상자를 출력합니다. 레지스트리에 저장된 언어가 기본값으로 선택됩니다.
6. 예약 파일
만약 솔리드 압축을 사용한다면 (BZIP2와 LZMA에서는 기본값으로 솔리드 압축을 사용), 인스톨러를 더욱 빠르게하기 때문에 데이터영역에서 다른 파일들보다 앞서 위치한 함수들,(init 함수 또는 페이지 함수들) 에서 풀릴파일을 지정하는 것은 중요합니다.
init 함수 또는 페이지가 함수가 섹션 또는 함수의 File 명령보다 위에 있다면 섹션 또는 함수에 이 매크로를 추가하세요.
ReserveFile "ioFile.ini" ;Your own InstallOptions INI files
!insertmacro MUI_RESERVEFILE_INSTALLOPTIONS ;InstallOptions plug-in
!insertmacro MUI_RESERVEFILE_LANGDLL ;Language selection dialog
7. 자신만의 섹션과 함수
인스톨러 섹션과 함수를 추가할 수 있습니다. 자세한 정보는 NSIS 사용자 설명서를 참조하세요.
위에서 언급했던 시작메뉴 단축아이콘 생성과 언어 선택에 대한 코드와 함수들에 대한 정보.
8. 섹션 설명
컴포넌트 페이지에서 사용자가 마우스를 섹션 위에 올려놓을 때 출력하는 설명합니다. 설명을 사용하지 않으려면 MUI_COMPONENTSPAGE_NODESC 인터페이스 설정을 선언하세요.
섹션에 대한 설명을 설정하려면 Section 명령에서 이름과 함께 섹션 숫자를 포함하는 매개변수를 추가로 선언해야합니다..
Section "Section Name 1" Section1
...
SectionEnd
설명을 설정하려면 아래 매크로를 사용하세요:
LangString DESC_Section1 ${LANG_ENGLISH} "Description of section 1."
LangString DESC_Section2 ${LANG_ENGLISH} "Description of section 2."
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
!insertmacro MUI_DESCRIPTION_TEXT ${Section1} $(DESC_Section1)
!insertmacro MUI_DESCRIPTION_TEXT ${Section2} $(DESC_Section2)
!insertmacro MUI_FUNCTION_DESCRIPTION_END
언인스톨러의 경우, MUI_UNFUNCTION_DESCRIPTION_BEGIN 과 MUI_UNFUNCTIONS_DESCRIPTION_END 매크로를 사용하세요.
인스톨러에 사용자 페이지를 추가하려면 페이지 매크로 사이에 자신만의 페이지 명령을 추가합니다.
!insertmacro MUI_PAGE_WELCOME
Page custom FunctionName ; 사용자페이지
!insertmacro MUI_PAGE_COMPONENTS
;Uninstaller
!insertmacro MUI_UNPAGE_CONFIRM
UninstPage custom un.FunctionName ;사용자 페이지
!insertmacro MUI_UNPAGE_INSTFILES
INI 파일을 사용하여 사용자페이지를 출력하는 플러그인입니다.
이 문서를 참조하세요 InstallOptions 문서 .
처음, MUI_INSTALLOPTIONS_EXTRACT 매크로를 사용하여 .onInit 함수에서 InstallOptions INI 파일을 풀어야합니다 (언인스톨러는 un.onInit) :
Function .onInit
!insertmacro MUI_INSTALLOPTIONS_EXTRACT "ioFile.ini"
FunctionEnd
INI 파일이 다른 디렉토리에 위치한다면 MUI_INSTALLOPTIONS_EXTRACT_AS를 사용하세요. 두번째 매개변수는 임시 플러그인 디렉토리에 대한 파일이름입니다. 다른 InstallOptions 매크로에 대한 매개변수 파일이름을 사용합니다.
Function .onInit
!insertmacro MUI_INSTALLOPTIONS_EXTRACT_AS "..\ioFile.ini" "ioFile.ini"
FunctionEnd
MUI_INSTALLOPTIONS_DISPLAY 매크로를 사용하여 Page 또는 UninstPage 명령 사이에 선언한 함수에서 Install Options 를 호출할 수 있습니다. 이 페이지의 헤더에 출력할 문자열을 설정하려면 MUI_HEADER_TEXT 를 사용하세요:
LangString TEXT_IO_TITLE ${LANG_ENGLISH} "Install Options Page Title"
LangString TEXT_IO_SUBTITLE ${LANG_ENGLISH} "A subtitle"
Function FunctionName ; Page 명령에서 선언한 함수 이름
!insertmacro MUI_HEADER_TEXT "$(TEXT_IO_TITLE)" "$(TEXT_IO_SUBTITLE)"
!insertmacro MUI_INSTALLOPTIONS_DISPLAY "ioFile.ini"
FunctionEnd
사용자 글꼴과 색상을 사용하기위한 initDialog 와 show 함수 또한 사용가능합니다:
Var HWND
Var DLGITEM
Var FONT
LangString TEXT_IO_TITLE ${LANG_ENGLISH} "Install Options Page Title"
LangString TEXT_IO_SUBTITLE ${LANG_ENGLISH} "A subtitle"
Function FunctionName ; Page 명령에서 선언한 함수
!insertmacro MUI_HEADER_TEXT "$(TEXT_IO_TITLE)" "$(TEXT_IO_SUBTITLE)"
!insertmacro MUI_INSTALLOPTIONS_INITDIALOG "ioFile.ini"
Pop $HWND ;HWND of dialog
GetDlgItem $DLGITEM $HWND 1200 ;1200 + Field number - 1
;$DLGITEM contains the HWND of the first field
CreateFont $FONT "Tahoma" 10 700
SendMessage $DLGITEM ${WM_SETFONT} $FONT 0
!insertmacro MUI_INSTALLOPTIONS_SHOW
FunctionEnd
InstallOptions의 반환 값이 필요하면 (성공,뒤로,취소,에러등), MUI_INSTALLOPTIONS_DISPLAY_RETURN 또는 MUI_INSTALLOPTIONS_SHOW_RETURN 매크로를 사용하세요. 반환값은 스택에 추가되고 Pop 명령을 사용해서 얻을 수 있습니다.
INI 파일 값에 읽거나 쓰려면 아래와 같은 매크로를 사용하세요:
!insertmacro MUI_INSTALLOPTIONS_READ $VAR "ioFile.ini" "Field #" "Name"
!insertmacro MUI_INSTALLOPTIONS_WRITE "ioFile.ini" "Field #" "Name" "Value"
예, MUI_INSTALLOPTIONS_READ 매크로를 사용해서 사용자 입력을 얻을 수 있습니다:
!insertmacro MUI_INSTALLOPTIONS_READ $R0 "ioFile.ini" "Field 1" "State"
사용자 입력 확인등 InstallOptions 에 관한 더 자세한 정보는 아래 문서를 참조하세요 InstallOptions 문서.
대화상자안의 구성요소를 변경하려면 조절된 UI 리소스 파일을 사용합니다 ( 인터페이스 환경설정 참조). 리소스 해커 와 같은 툴을 사용하여 원본 파일을 자신만의 파일로 변경할 수 있습니다 (Contrib\UIs 폴더).
수정된 대화상자 111를 가진 사용자 UI 리소스 파일을 사용해서(MUI_UI 설정) 인스톨러가 시작되고 출력되는 스플래쉬 화면(인스톨러 확인, 데이터 추출) 에 출력되는 문자열 'Please wait while Setup is loading...' 을 변경할 수 있습니다.
'Verifying installer' 와 'Unpacking data' 문자열은 NSIS exehead 의 언어 헤더파일에 선언되어 있습니다 (Source\exehead\lang.h). 이것들을 변경하려면 이 파일을 수정하고 NSIS를 재컴파일해야합니다.
환영/종료 대화상자를 변경하려면 사용자 페이지 함수에서 INI파일을 작성하거나 MUI_SPECIALINI 설정을 이용하는 사용자 INI 파일을 사용합니다.
Modern UI에 의해 추가된 함수들에 사용자 코드를 추가하려면 .onGUIInit 함수와 페이지 함수와 같이 자신만의 함수를 만들고 Modern UI 함수가 이 함수를 호출하게 합니다. 함수의 이름을 선언하려면 define 명령을 사용하세요.
예:
!define MUI_CUSTOMFUNCTION_GUIINIT myGuiInit
Function myGUIInit
...your own code...
FunctionEnd
언어 매크로를 추가하기 전에 추가해야 합니다.
MUI_CUSTOMFUNCTION_GUIINIT function
MUI_CUSTOMFUNCTION_UNGUIINIT function
MUI_CUSTOMFUNCTION_ABORT function
MUI_CUSTOMFUNCTION_UNABORT function
페이지 매크로를 추가하기 전에 선언해야합니다.
MUI_PAGE_CUSTOMFUNCTION_PRE function
MUI_PAGE_CUSTOMFUNCTION_SHOW function
MUI_PAGE_CUSTOMFUNCTION_LEAVE function
알림:
- 시작메뉴 페이지는 Show 함수가 없습니다
- 환영/종료 페이지에 앞서 함수에서 이들 페이지의 INstallOptions INI 파일을 작성 할 수 있습니다 (ioSpecial.ini)
- 환영/종료 페이지의 Show 함수에서, $MUI_HWND 는 내부 대화상자의 HWND를 포함합니다
하나의 환영 또는 종료 페이지에 앞서 선언해야합니다.
MUI_WELCOMEFINISHPAGE_CUSTOMFUNCTION_INIT function
페이지를 위해 작성된 InstallOptions INI 파일에 앞서 이러한 Init 함수가 호출됩니다. 즉, 페이지 설정에 사용되는 많은 변수 초기화에 사용할 수 있습니다.
기초: Basic.nsi
환영/종료 페이지: WelcomeFinish.nsi
복수 언어: MultiLanguage.nsi
헤더 이미지: HeaderBitmap.nsi
사용자 페이지: InstallOptions.nsi
시작 메뉴 폴더 페이지: StartMenu.nsi
버전 정보
- 1.72 - November 27, 2004
- Fixed state of Finish page Cancel button when both an installer and uninstaller page is included
제작자
Made by Joost Verburg.
Icons designed by Nikos Adamamas, aka adni18.
Thanks to Amir Szekely, aka KiCHiK, for his work on NSIS to make this possible.
초 간단 극악 음독 번역 v0.1 - Hell Master, jgh0721@nate.com
도움말
질문은 이곳에 올려주세요 NSIS 포럼.
라이센스
The zlib/libpng license applies to the Modern UI.
Copyright ⓒ 2002-2005 Joost Verburg
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
arising from the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute
it freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented;
you must not claim that you wrote the original software.
If you use this software in a product, an acknowledgment in the
product documentation would be appreciated but is not required.
2. Altered versions must be plainly marked as such,
and must not be misrepresented as being the original software.
3. This notice may not be removed or altered from any distribution.
ⓒ2002-2005 Joost Verburg
출처: https://infoki.net/68 [ㄴrㅎnㅂrㄹrㄱi]
'CMD BAT 인스톨' 카테고리의 다른 글
INetLoad 플러그인 (0) | 2021.01.12 |
---|---|
NsisInstaller (0) | 2021.01.12 |
Windows Batch 파일(.BAT)에서 IF 문에서 수식 사용 (0) | 2019.09.24 |
관리자 권한으로 프로그램 시작등록 (0) | 2018.12.07 |
[윈도우] 사용중인 특정 포트 및 프로그램 확인하기 (netstat, tasklist) (0) | 2018.12.06 |
최근댓글