반응형
NSIS 시리즈 ③ – 마법사 UI 만들기: MUI.nsh와 페이지 커스터마이징
기본 NSIS 설치기는 기능은 많지만 UI는 다소 투박하게 느껴질 수 있습니다. 하지만 NSIS는 MUI.nsh를 통해 환영 페이지, 라이선스 동의 페이지, 설치 폴더 선택 페이지, 진행 상황 표시, 완료 페이지 등을 제공하여 일반적인 마법사 스타일 설치기를 쉽게 구성할 수 있게 해줍니다.
✅ MUI (Modern UI)란?
MUI는 NSIS의 기본 GUI를 개선한 모듈로, 설치 과정을 마법사 스타일로 구성할 수 있게 해줍니다.
!include "MUI.nsh" 한 줄로 활성화되며, 설치기의 단계별 UI 흐름을 선언적으로 구성할 수 있습니다.
🧱 기본 구조 예제
!include "MUI.nsh"
!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_LICENSE "LICENSE.txt"
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_PAGE_FINISH
!insertmacro MUI_LANGUAGE "English"
위 코드는 5단계로 구성된 설치 마법사를 정의합니다.
📋 각 페이지 설명
페이지 매크로 | 설명 |
MUI_PAGE_WELCOME | 설치 시작 안내 |
MUI_PAGE_LICENSE | 라이선스 동의 (텍스트 파일 필요) |
MUI_PAGE_DIRECTORY | 설치 경로 선택 |
MUI_PAGE_INSTFILES | 설치 진행 상태 표시 |
MUI_PAGE_FINISH | 설치 완료 안내 및 실행 옵션 |
반응형
🛠️ 전체 예제: MUI 기반 설치기 구성
!include "MUI.nsh"
Name "MyMUIApp"
OutFile "MyMUIApp_Setup.exe"
InstallDir "$PROGRAMFILES\MyMUIApp"
RequestExecutionLevel admin
; 페이지 구성
!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_LICENSE "LICENSE.txt"
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES
!define MUI_FINISHPAGE_RUN "$INSTDIR\MyApp.exe"
!insertmacro MUI_PAGE_FINISH
; 언어 설정
!insertmacro MUI_LANGUAGE "English"
Section "Install"
SetOutPath "$INSTDIR"
File "MyApp.exe"
CreateShortCut "$DESKTOP\MyApp.lnk" "$INSTDIR\MyApp.exe"
SectionEnd
🧩 고급 옵션: 페이지 커스터마이징
✅ MUI_FINISHPAGE_RUN
- 설치 완료 후 프로그램 자동 실행 옵션 표시
!define MUI_FINISHPAGE_RUN "$INSTDIR\MyApp.exe"
✅ MUI_PAGE_LICENSE 커스터마이징
- 사용자에게 반드시 동의 받기
- LICENSE 파일 경로 지정
!insertmacro MUI_PAGE_LICENSE "docs\license.txt"
✅ 사용자 경로 기본값 설정
InstallDir "$PROGRAMFILES\MyMUIApp"
✅ 조건부 페이지 표시
Function .onInit
; 조건에 따라 라이선스 페이지 생략 가능
FunctionEnd
🧪 실전 예제: 설치 완료 후 메시지 추가
!define MUI_FINISHPAGE_SHOWREADME "$INSTDIR\README.txt"
또는:
Function .onInstSuccess
MessageBox MB_OK "설치가 완료되었습니다. 프로그램을 실행합니다."
FunctionEnd
💬 다국어 설정 예시
!insertmacro MUI_LANGUAGE "Korean"
다국어 설치를 원할 경우 MUI_LANGUAGE를 여러 번 선언하고 조건문으로 선택할 수 있습니다.
반응형
'코딩취미 > 프로그램 지식' 카테고리의 다른 글
NSIS 시리즈 ⑤ – 언인스톨러 만들기: 깔끔한 제거 기능 구현 (0) | 2025.06.05 |
---|---|
NSIS 시리즈 ④ – 파일 복사와 바로가기 만들기: 설치기의 핵심 기능 (0) | 2025.06.05 |
NSIS 시리즈 ② – 변수와 조건문, 설치 로직 만들기 (0) | 2025.06.05 |
NSIS란 무엇인가? 설치기 제작의 첫걸음 (0) | 2025.06.05 |
NSIS란? 설치 파일을 스크립트로 만드는 강력한 도구 (0) | 2025.06.04 |