확장팩 팁과 노하우 게시판

전체보기

모바일 상단 메뉴

본문 페이지

[애드온] [nsi] 설치 애드온 만들기 - 기초 중급편 I -

장군라작스2
댓글: 3 개
조회: 7334
추천: 18
2012-09-11 21:14:54

[nsi] 설치 애드온 만들기 - 기초 중급편-

 

-- 개별 애드온의 설치/삭제 애드온을 만들고자 할때

 

설치/제거 애드온의 화면

 

 

 

 

 

설치 애드온을 만들기 위해서는 항상 바이러스 체크를 함으로써 타 유저가 안전하게 사용할 수 있도록 해야합니다.

 

설치 애드온을 받았을때는 사용전에 바이러스 테스트를 한 후에 게임을 실행 하는것이 좋습니다.

 

설치 애드온 만들기

 

다운로드 :

 

nsis ; 중급 이상 사용자는 해당 사이트에서 다운로드

http://nsis.sourceforge.net/

http://nsis.sourceforge.net/Download


HM NIS Edit ; 초급 이상 사용자는 해당사이트에서 다운로드 ( 한글화 버전 받기 )

http://jgh0721.tistory.com/attachment/dk39.exe

 

-- 목록 --

 

test.nsi ; 스크립트가 있는 데이터

;(초급 사용자는 HM NIS Edit, Venis IX 로 Open 사용 권장)

wow.ico ; 설치 애드온이 만들어 지고 나서 생기는 설치 아이콘 (개인이 선택 가능, 권장 크키 : 48 X 48 )
wow_uninst.ico : 설치 애드온의 삭제 아이콘 (개인이 선택가능)
wow_welcome.bmp ; 설치 애드온의 설치 화면의 일부 화면 (권장 크기 : 200 X 300, 164 X 314)
License.txt ; 설치 애드온의 설치 화면에서 나오는 라이센스 항목 (본인에 맞게 설정 가능)

GTFO 5.0.4_a ; 설치/제거 애드온 예제

 

- 컴파일 방법 -

 

Venis IX -> Tools -> Comfile

HM NIS Edit -> NSIS(N) -> 스크립트 컴파일(C) -> Ctrl + 9
HM NIS Edit -> NSIS(N) -> 컴파일 및 실행(O) -> Shift + 9

해당파일.nsi -> 마우스 오른쪽 버튼 클릭 -> Compile NSIS Script -> 클릭

 

-- 참고 애드온 폴더 --

 

애드온 폴더는 아래와 같이 하는것이 좋습니다.

 

예제)

GTFO 드라이브 경로

 

## 파일 복사
  File /a /r "D:/Test/Pack/GTFO/" ; 파일 복사 경로
## 드라이브 실제 복사 경로
D:Test/Pack/DBM/Interface/Addons/ ; AddOns 폴더에 GTFO 애드온 파일 넣기

 

 

-- 스크립트 --

 

# script by MONK

## 배포할 프로그램의 정보
!define PRODUCT_NAME "MONK GTFO"
!define PRODUCT_VERSION "5.0.4_a" ;프로그램의 버전
!define PRODUCT_PUBLISHER "MONK" ;프로그램을 배포하는 사람
!define PRODUCT_DIR_ROOT_REGKEY "HKLM" ;프로그램의 설치 정보를 넣을 레지스트리의 최상위 경로
!define PRODUCT_DIR_REGKEY "Software${PRODUCT_NAME}" ;프로그램의 설치 정보를 넣을 레지스트리의 하위 경로
!define PRODUCT_UNINST_ROOT_KEY "HKLM" ;프로그램의 제거 정보를 넣을 레지스트리의 최상위 경로
!define PRODUCT_UNINST_KEY "SoftwareMicrosoftWindowsCurrentVersionUninstall${PRODUCT_NAME}" ;프로그램의 제거 정보를 넣을 레지스트리의 하위 경로

## 설치 프로그램의 아이콘과 배경 삽입
!define MUI_ICON "wow.ico" ;설치 프로그램의 아이콘
!define MUI_UNICON "wow_uninst.ico" ;제거 프로그램의 아이콘
!define MUI_WELCOMEFINISHPAGE_BITMAP "wow_welcome.bmp" ;환영 페이지의 배경
!define MUI_WELCOMEFINISHPAGE_BITMAP_NOSTRETCH ;환영 페이지의 배경을 늘리지 않음
## 설치 프로그램의 정보 설정
OutFile "${PRODUCT_NAME} ${PRODUCT_VERSION}.exe" ;설치 프로그램의 이름
InstallDirRegKey HKLM "SOFTWAREBlizzard EntertainmentWorld of Warcraft" "InstallPath" ;프로그램을 설치할 경로를 와우의 레지스트리에서 가져오기
InstallDir $INSTDIR ;프로그램을 설치할 경로 설정
Name "${PRODUCT_NAME} ${PRODUCT_VERSION}" ;설치 프로그램의 상위에 주로 나올 제목
BrandingText /TRIMRIGHT "${PRODUCT_NAME}" ;설치 프로그램의 하부에 가로줄과 함께 나올 텍스트
ShowInstDetails show ;설치 페이지에서 설치 과정 보이기
ShowUnInstDetails show ;제거 페이지에서 제거 과정 보이기

# MUI 1.67 compatible : 매크로 삽입 ------------------------------------------------------------
!include "MUI.nsh"
!include "WordFunc.nsh"
!include "FileFunc.nsh"


# 페이지 삽입 ------------------------------------------------------------
;!define MUI_ABORTWARNING ;설치/제거 도중 취소하면 경고

!insertmacro MUI_PAGE_WELCOME ;환영 페이지
!insertmacro MUI_PAGE_LICENSE "License.txt" ;라이센스 페이지
!insertmacro MUI_PAGE_COMPONENTS ;설치 항목 선택 페이지
!insertmacro MUI_PAGE_DIRECTORY ;설치할 경로 선택 페이지
!insertmacro MUI_PAGE_INSTFILES ;설치 페이지
;!define MUI_FINISHPAGE_NOAUTOCLOSE ;인스톨후 마지막페이지로 바로 넘어가지 않음
!define MUI_FINISHPAGE_RUN "$INSTDIRWorld of Warcraft Launcher.exe" ;마지막페이지에서 실행할 프로그램
!define MUI_FINISHPAGE_RUN_TEXT "월드오브워크래프트 실행하기" ;마지막페이지에서 실행할 프로그램의 설명
!insertmacro MUI_PAGE_FINISH ;마지막 페이지
!insertmacro MUI_UNPAGE_INSTFILES ;제거 페이지

# 언어 파일 설정 ------------------------------------------------------------
; 본 항목은 반드시 페이지 삽입 보다 뒤에 와야 합니다.
;!insertmacro MUI_LANGUAGE "English"
!insertmacro MUI_LANGUAGE "Korean"

Section /o "GTFO" ID01_SEC

 SetOutPath "$INSTDIR"

; 파일 복사
 File /a /r "D:TestPackGTFO"
SectionEnd

; Section descriptions
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
 !insertmacro MUI_DESCRIPTION_TEXT ${ID01_SEC} "바닥 경고"
!insertmacro MUI_FUNCTION_DESCRIPTION_END

Section -AdditionalIcons
  CreateDirectory "$SMPROGRAMS${PRODUCT_NAME}"
  CreateShortCut "$SMPROGRAMS${PRODUCT_NAME}${PRODUCT_NAME} ${PRODUCT_VERSION}제거.lnk" "$INSTDIR${PRODUCT_NAME} ${PRODUCT_VERSION}_uninst.exe"
  CreateShortCut "$DESKTOP${PRODUCT_NAME} ${PRODUCT_VERSION}제거.lnk" "$INSTDIR${PRODUCT_NAME} ${PRODUCT_VERSION}_uninst.exe"
SectionEnd

Section -Post
  WriteUninstaller "$INSTDIR${PRODUCT_NAME} ${PRODUCT_VERSION}_uninst.exe"
  WriteRegStr ${PRODUCT_DIR_ROOT_REGKEY} "${PRODUCT_DIR_REGKEY}" "Install_Dir" "$INSTDIR"
  WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)"
  WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIR${PRODUCT_NAME} ${PRODUCT_VERSION}_uninst.exe"
  WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayIcon" "$INSTDIR${PRODUCT_NAME} ${PRODUCT_VERSION}_uninst.exe"
  WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}"
  WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "Publisher" "${PRODUCT_PUBLISHER}"
 WriteRegDWORD ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "NoModify" 1
 WriteRegDWORD ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "NoRepair" 1
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
 
 ## 바로가기, 레지스트리 삭제
; 개인에 맞게 수정해야 하는 부분 !!

  RMDir /r "$INSTDIRInterfaceAddOnsGTFO"
  
 RMDir /r "$SMPROGRAMSGTFO"
 
  Delete "$DESKTOP${PRODUCT_NAME} ${PRODUCT_VERSION}제거.lnk"
  Delete "$INSTDIR${PRODUCT_NAME} ${PRODUCT_VERSION}uninst.exe"
  DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
  DeleteRegKey ${PRODUCT_DIR_ROOT_REGKEY} "${PRODUCT_DIR_REGKEY}"

  SetAutoClose true
SectionEnd

 

 

PS.

추후 설치 애드온모음집 만들기와 해상도별 설치 애드온모음집의 소스와 ace라이브러리 연동도 같이 올리겠습니다.

 

Lv62 장군라작스2

모바일 게시판 하단버튼

댓글

새로고침
새로고침

모바일 게시판 하단버튼

지금 뜨는 인벤

더보기+

모바일 게시판 리스트

모바일 게시판 하단버튼

글쓰기

모바일 게시판 페이징

최근 HOT한 콘텐츠

  • 와우
  • 게임
  • IT
  • 유머
  • 연예
AD