## script by MONK
## 배포할 프로그램의 정보
!define PRODUCT_NAME "testPack"
!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 MUI_ICON "wow.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 "$INSTDIRLauncher.exe" ;마지막페이지에서 실행할 프로그램
!define MUI_FINISHPAGE_RUN_TEXT "월드오브워크래프트 실행하기" ;마지막페이지에서 실행할 프로그램의 설명
!insertmacro MUI_PAGE_FINISH ;마지막 페이지
# 언어 파일 설정 ------------------------------------------------------------
; 본 항목은 반드시 페이지 삽입 보다 뒤에 와야 합니다.
;!insertmacro MUI_LANGUAGE "English"
!insertmacro MUI_LANGUAGE "Korean"
SectionGroup /e "공격대 도우미" Raid_SEC
Section "DBM-Pandaria" Add01_SEC
SetOutPath "$INSTDIR"
SectionIn RO
SetOverwrite on
; 파일 복사
File /a /r "D:TestUIRaidPackDBMInterfaceAddOns"
SectionEnd
Section /o "InvenRaidFrames3" Add02_SEC
SetOutPath "$INSTDIR"
; 파일 복사
File /a /r "D:TestUIRaidPackInvenRaidFrames3InterfaceAddOns"
SectionEnd
Section /o "Grid" Add03_SEC ; 참고를 위해서 하위 폴더 내용까지 포함 ( 로 설정 가능)
SetOutPath "$INSTDIR"
; 파일 복사
File /a /r "D:TestUIRaidPackGridInterfaceAddOns"
SectionEnd
SectionGroupEnd
SectionGroup /e "미터기" MI_SEC
Section /o "Omen" MI01_SEC
SetOutPath "$INSTDIR"
; 파일 복사
File /a /r "D:TestUIRaidPackOmenInterfaceAddOns"
SectionEnd
Section /o "Recount" MI02_SEC
SetOutPath "$INSTDIR"
; 파일 복사
File /a /r "D:TestUIRaidPackRecountInterfaceAddOns"
SectionEnd
SectionGroupEnd
SectionGroup /e "개인 추가 항목" Individual_SEC
Section /o "GTFO" ID01_SEC
SetOutPath "$INSTDIR"
; 파일 복사
File /a /r "D:TestUIRaidPackGTFOInterfaceAddOns"
SectionEnd
SectionGroupEnd
; Section descriptions
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
!insertmacro MUI_DESCRIPTION_TEXT ${Raid_SEC} "공격대 도우미"
!insertmacro MUI_DESCRIPTION_TEXT ${Add01_SEC} "DBM 공격대 보스 경고 (필수)선택 지정 "
!insertmacro MUI_DESCRIPTION_TEXT ${Add02_SEC} "인벤 레이드 유닛 프레임 "
!insertmacro MUI_DESCRIPTION_TEXT ${Add03_SEC} "Grid 레이드 유닛 프레임 "
!insertmacro MUI_DESCRIPTION_TEXT ${MI_SEC} "어그로 및 데미지 미터기 "
!insertmacro MUI_DESCRIPTION_TEXT ${MI01_SEC} "어그로 미터기 "
!insertmacro MUI_DESCRIPTION_TEXT ${MI02_SEC} "데미지 미터기 "
!insertmacro MUI_DESCRIPTION_TEXT ${Individual_SEC} "개인 추가항목 선택 "
!insertmacro MUI_DESCRIPTION_TEXT ${ID01_SEC} "바닥 경고"
!insertmacro MUI_FUNCTION_DESCRIPTION_END
# 바로가기와 레지스트리 생성 섹션 ; Interface에 대한 제거 항목 설명
Section -AdditionalIcons
CreateDirectory "$SMPROGRAMS${PRODUCT_NAME}"
CreateShortCut "$SMPROGRAMS${PRODUCT_NAME}${PRODUCT_NAME} 제거.lnk" "$INSTDIR${PRODUCT_NAME}_uninst.exe"
CreateShortCut "$SMPROGRAMS${PRODUCT_NAME}World of Warcraft 실행.lnk" "$INSTDIRLauncher.exe"
CreateShortCut "$DESKTOP${PRODUCT_NAME} 제거.lnk" "$INSTDIR${PRODUCT_NAME}_uninst.exe"
SectionEnd
Section -Post
WriteUninstaller "$INSTDIR${PRODUCT_NAME}_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}_uninst.exe"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayIcon" "$INSTDIR${PRODUCT_NAME}_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.onInit
MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "$(^Name) 을(를) 제거하시겠습니까?" IDYES +2
Abort
${un.DirState} "$INSTDIROld" $R4
StrCmp $R4 1 ynoldback
StrCpy $R4 0
Goto end
ynoldback:
MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON1 "testpack의 UI를 $(^Name) 설치 전으로 돌리시겠습니까?$n$n" IDYES +2
StrCpy $R4 0
end:
Push $R4
FunctionEnd
Function un.onUninstSuccess
HideWindow
MessageBox MB_ICONINFORMATION|MB_OK "$(^Name) 는(은) 완전히 제거되었습니다."
FunctionEnd
## 제거 섹션
Section Uninstall
## 파일 삭제
RMDir /r "$INSTDIRInterface" ; Interface안에 내용을 모두 삭제
StrCmp $R4 1 0 nextU
## 원래 설정으로
Rename "$INSTDIROldInterface" "$INSTDIRInterface"
RMDir /r "$INSTDIROld"
nextU:
## 바로가기, 레지스트리 삭제
Delete "$DESKTOP${PRODUCT_NAME} 제거.lnk"
RMDir /r "$SMPROGRAMS${PRODUCT_NAME}"
Delete "$INSTDIR${PRODUCT_NAME}_uninst.exe"
DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
DeleteRegKey ${PRODUCT_DIR_ROOT_REGKEY} "${PRODUCT_DIR_REGKEY}"
SetAutoClose true
SectionEnd