728x90
728x170

NSIS 는 Setup 파일을 만들기에 좋은 도구임은 틀림없는데요.

스크립트를 익혀야하는 단점이 있습니다.

 

하지만 특별한 처리 필요없이 파일들을 간단하게 말아서 구성 하는경우에는

HM NIS Edit 의 스크립트 작성 마법사를 이용해 Setup 파일을 구성할 수 있습니다.

 

먼저 NSIS 를 설치하고

https://sourceforge.net/projects/nsis/files/NSIS%203/3.05/nsis-3.05-setup.exe/download?use_mirror=jaist&download=

 

다음에 HM NIS Edit 를 설치 합니다.

https://sourceforge.net/projects/hmne/

 

(HM NIS Edit 를 설치할때 오류가 뜰때가 있는데 무시하고 진행하면 됩니다.)

 

HM NIS Edit 를 실행합니다.

 

스크립트 작성 마법사 버튼을 클릭

 

 

다음

 

프로그램정보를 입력합니다.

 

설치 아이콘이 있다면 선택 합니다.(프로그램 추가/제거에 해당 아이콘이 표시됩니다.)

만들어질 설치파일 이름을 입력합니다. (변경이 필요없다면 그대로 둡니다.)

설치 언어를 선택합니다.

GUI 는 설치시 화면에 보여질 UI 모양인데 Modern,Classic 이 있습니다.

압축형태를 선택합니다. (zlib,bzip2,LZMA,사용안함)

 

프로그램 기본 디렉토리를 설정하고 Licence 파일을 선택합니다.

(메모장으로 하나 만들어 넣으면 됩니다. 한글안됨 - 방법을 찾으면 공유하겠습니다.)

 

 

 

기본적으로 아래처럼 나오는데 우측의 내용을 지우고 새로 넣으면 됩니다.

 

좌측은 그룹으로 그룹별로 선택 설치할 수 있도록 합니다.

(제가 처리할 파일은 두개의 파일만 있어서 두개만 넣었습니다.)

 

 

프로그램 시작 메뉴 명을 입력하고 바로가기는 기본적으로 추가되 있으나

또 추가를 원하는 경우 '바로 가기 추가' 버튼을 클릭해 추가할 수 있습니다.

 

설치후 실행될 파일을 선택합니다.

 

제거시 사용할 문구를 입력합니다.

([NAME] 에는 프로그램 이름이 자동으로 들어갑니다.)

 

모두 체크하고 완료!

(스크립가 저장될 파일(nsi) 의 명을 입력하는 창이 나옴)

 

스크립트가 아래처럼 작성이 되면서 컴파일 되고 Setup 파일이 만들어집니다.

 

Setup 만들기 완료!

 

실행해 봅니다.

 

 

 

 

 

 

설치 확인

 

1. 바탕화면 바로가기 아이콘 확인

 

 

 

2. 프로그램 및 기능 목록 확인

 

 

 

3. 메뉴 확인

 

 

 

4. 제거 확인

 

 

 

 

아래는 자동으로 만들어진 전체 스크립트

 

 

; Script generated by the HM NIS Edit Script Wizard.

 

; HM NIS Edit Wizard helper defines

!define PRODUCT_NAME "BoardPanPro"

!define PRODUCT_VERSION "1.0"

!define PRODUCT_PUBLISHER "keisoft"

!define PRODUCT_WEB_SITE "http://keisoft.kr"

!define PRODUCT_DIR_REGKEY "Software\Microsoft\Windows\CurrentVersion\App Paths\BoardPanPro.exe"

!define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"

!define PRODUCT_UNINST_ROOT_KEY "HKLM"

 

; MUI 1.67 compatible ------

!include "MUI.nsh"

 

; MUI Settings

!define MUI_ABORTWARNING

!define MUI_ICON "bp.ico"

!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico"

 

; Welcome page

!insertmacro MUI_PAGE_WELCOME

; License page

!insertmacro MUI_PAGE_LICENSE "licence.txt"

; Directory page

!insertmacro MUI_PAGE_DIRECTORY

; Instfiles page

!insertmacro MUI_PAGE_INSTFILES

; Finish page

!define MUI_FINISHPAGE_RUN "$INSTDIR\BoardPanPro.exe"

!insertmacro MUI_PAGE_FINISH

 

; Uninstaller pages

!insertmacro MUI_UNPAGE_INSTFILES

 

; Language files

!insertmacro MUI_LANGUAGE "Korean"

 

; MUI end ------

 

Name "${PRODUCT_NAME} ${PRODUCT_VERSION}"

OutFile "Setup.exe"

InstallDir "$PROGRAMFILES\BoardPanPro"

InstallDirRegKey HKLM "${PRODUCT_DIR_REGKEY}" ""

ShowInstDetails show

ShowUnInstDetails show

 

Section "MainSection" SEC01

  SetOutPath "$INSTDIR"

  SetOverwrite on

  File "BoardPanPro.exe"

  CreateDirectory "$SMPROGRAMS\BoardPanPro"

  CreateShortCut "$SMPROGRAMS\BoardPanPro\BoardPanPro.lnk" "$INSTDIR\BoardPanPro.exe"

  CreateShortCut "$DESKTOP\BoardPanPro.lnk" "$INSTDIR\BoardPanPro.exe"

  File "BoardPanPro.exe.config"

SectionEnd

 

Section -AdditionalIcons

  WriteIniStr "$INSTDIR\${PRODUCT_NAME}.url" "InternetShortcut" "URL" "${PRODUCT_WEB_SITE}"

  CreateShortCut "$SMPROGRAMS\BoardPanPro\Website.lnk" "$INSTDIR\${PRODUCT_NAME}.url"

  CreateShortCut "$SMPROGRAMS\BoardPanPro\Uninstall.lnk" "$INSTDIR\uninst.exe"

SectionEnd

 

Section -Post

  WriteUninstaller "$INSTDIR\uninst.exe"

  WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "" "$INSTDIR\BoardPanPro.exe"

  WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)"

  WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIR\uninst.exe"

  WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayIcon" "$INSTDIR\BoardPanPro.exe"

  WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}"

  WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "URLInfoAbout" "${PRODUCT_WEB_SITE}"

  WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "Publisher" "${PRODUCT_PUBLISHER}"

SectionEnd

 

 

Function un.onUninstSuccess

  HideWindow

  MessageBox MB_ICONINFORMATION|MB_OK "$(^Name)는(은) 완전히 제거되었습니다."

FunctionEnd

 

Function un.onInit

  MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "$(^Name)을(를) 제거하시겠습니까?" IDYES +2

  Abort

FunctionEnd

 

Section Uninstall

  Delete "$INSTDIR\${PRODUCT_NAME}.url"

  Delete "$INSTDIR\uninst.exe"

  Delete "$INSTDIR\BoardPanPro.exe.config"

  Delete "$INSTDIR\BoardPanPro.exe"

 

  Delete "$SMPROGRAMS\BoardPanPro\Uninstall.lnk"

  Delete "$SMPROGRAMS\BoardPanPro\Website.lnk"

  Delete "$DESKTOP\BoardPanPro.lnk"

  Delete "$SMPROGRAMS\BoardPanPro\BoardPanPro.lnk"

 

  RMDir "$SMPROGRAMS\BoardPanPro"

  RMDir "$INSTDIR"

 

  DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"

  DeleteRegKey HKLM "${PRODUCT_DIR_REGKEY}"

  SetAutoClose true

SectionEnd

 

 

 

 

 

728x90
그리드형
Posted by kjun.kr
,