Fan UI BlackEdition2_nl.nsi ; 스크립트가 있는 데이터
;(초급 사용자는 HM NIS Edit, Venis IX 로 Open 사용 권장)
wow.ico ; 설치 애드온이 만들어 지고 나서 생기는 설치 아이콘 (개인이 선택 가능, 48 X 48, 128x128, 256x256 )
wow_uninst.ico : 설치 애드온의 삭제 아이콘 (개인이 선택가능)
wow_welcome.bmp ; 설치 애드온의 설치 좌측 화면의 일부 화면 (권장 크기 : 200 X 300, 164 X 314)
wow_Head.bmp ; 우측 상단 화면 (권장 크기 : 167 X 47, 120 X 47, 100 X 47)
License.txt ; 설치 애드온의 설치 화면에서 나오는 라이센스 항목 (개인에 맞게 내용 수정)
Black.zip : 각 애드온 자료 (기본 드라이브 : E드라이브 -> 개인에 맞게 드라이브 변경)
1. nsis는 2.46을 다운로드 설치 합니다.
2. ini 편집도 한다면 HM NIS EDIT를 다운로드 설치 합니다.
3. HM NIS EDIT 를 불러옵니다.
4. HM NIS EDIT에서 파일 열기를 합니다.
5. Nomal 폴더에서 Fan UI BlackEdion2_nl 를 찾아 엽니다.
6. 아래의 항목 중에서 NSIS 자료에 녹색 바탕부분을 개인에 맞게 변경 합니다.
7.Fan UI BlackEdion2_nl를 개인에 맞게 변경 하였으면 HM NIS EDIT 메뉴를 찾습니다.
8. HM NIS EDIT 메뉴 항목중에 NSIS 서브 항목에 컴파일 및 실행을 합니다.
9. 개인이 만든 자동설치 통합 애드온이 Blacknsis 폴더에 생성이 됩니다.
10. 생성된 파일을 바이러스 검사후 압축하여 개인이 사용하거나 자료실에 올립니다.
## 배포할 프로그램의 정보
!define PRODUCT_NAME "DevilUI BE II Fan"
!define PRODUCT_VERSION "6.2.4B01"
!define PRODUCT_PUBLISHER "Devil Fan ver."
!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" ;(권장크기 164x314)
!define MUI_WELCOMEFINISHPAGE_BITMAP_NOSTRETCH
!define MUI_UNWELCOMEFINISHPAGE_BITMAP "wow_welcome.bmp"
!define MUI_UNWELCOMEFINISHPAGE_BITMAP_NOSTRETCH
!define MUI_LICENSEPAGE_BGCOLOR /grey
## 설치 프로그램의 정보 설정
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
## 매크로 삽입
!include "MUI.nsh"
!include "WordFunc.nsh"
!include "Sections.nsh"
!include "FileFunc.nsh"
!insertmacro DirState
!insertmacro un.DirState
## 전역 변수 선언
Var VER
## 설치 프로그램이 나타나기 전에 수행할 함수
Function .onInit
## 기존 버전이 있는지 확인
ReadRegStr "$5" "${PRODUCT_UNINST_ROOT_KEY}" "${PRODUCT_UNINST_KEY}" "DisplayVersion"
StrCmp "$5" "${PRODUCT_VERSION}" initA
StrCmp "$5" "" "0" initB
StrCpy "$VER" "0"
Goto end
initA:
MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON1 "해당 데이터는 이미 설치 되었습니다.$n$n같은 데이터를 재설치 하시겠습니까?" IDYES +2
Abort
StrCpy "$VER" "1"
Goto end
initB:
MessageBox MB_ICONEXCLAMATION|MB_YESNO|MB_DEFBUTTON1 "설치된 $(^Name) 의 버전이 설치할 것과 다릅니다.$n$n완전히 삭제하고 다시 설치하시겠습니까?$n$n※구 버전은 Old 폴더에 백업합니다." IDYES +2
Abort
StrCpy "$VER" "2"
end:
Push $5
Push $VER
FunctionEnd
## 페이지 삽입
!insertmacro MUI_PAGE_WELCOME ;환영 페이지
!insertmacro MUI_PAGE_COMPONENTS ; 설치 항목 페이지
!insertmacro MUI_PAGE_DIRECTORY ; 설치 경로 지정 페이지
!insertmacro MUI_PAGE_INSTFILES ; 설치 페이지
!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 "Korean"
## 기본 섹션
Section "!기본 설치 항목" Basic_SEC
SectionIn RO
SetOverwrite on
SetOutPath "$INSTDIR"
SetOverwrite on
StrCmp $VER 0 selA
StrCmp $VER 1 copy
## 기존에 있는 타 UI가 있는지 검사
selA:
StrCpy $R1 -1
${DirState} "$INSTDIRInterface" $R1
StrCmp $R1 1 backup
${DirState} "$INSTDIRWTF" $R1
StrCmp $R1 1 backup
StrCmp $R1 -1 copy
StrCmp $R1 0 copy
## 기존에 있는 타 UI 백업 (Old 폴더에)
backup:
RMDir /r "$INSTDIROld"
CreateDirectory "$INSTDIROld"
Rename "$INSTDIRInterface" "$INSTDIROldInterface"
Rename "$INSTDIRWTF" "$INSTDIROldWTF"
Goto copy
copy:
## 파일 복사
File /a /r "E:BlackUIUI"
SectionEnd
Section "폰트" Fonts_SEC
SetOutPath "$INSTDIR"
File /a /r "E:BlackUIFonts"
SectionEnd
SectionGroup "레이드" Raid_SEC
Section /o "공격대경보-DBM(무거움)" Raid01_SEC
SetOutPath "$INSTDIR"
File /a /r "E:BlackUIPackDBM"
SectionEnd
Section /o "인벤레이드프레임-IRF" Raid02_SEC
SetOutPath "$INSTDIR"
File /a /r "E:BlackUIPackInvenRaidFrames3"
SectionEnd
Section /o "바닥경보-GTFO" Raid03_SEC
SetOutPath "$INSTDIR"
File /a /r "E:BlackUIPackGTFO"
SectionEnd
Section /o "막공골드도우미-T-raid" Raid04_SEC
SetOutPath "$INSTDIR"
File /a /r "E:BlackUIPackTraid"
SectionEnd
SectionGroupEnd
SectionGroup "미터기" Meter_SEC
Section /o "데미지미터기-Recount(무거움)" Meter01_SEC
SetOutPath "$INSTDIR"
File /a /r "E:BlackUIMeterRecount"
SectionEnd
Section /o "어그로미터기-Omen" Meter02_SEC
SetOutPath "$INSTDIR"
File /a /r "E:BlackUIMeterOmen"
SectionEnd
SectionGroupEnd
SectionGroup "아이템 정보 도우미" ITEMInfo_SEC
Section /o "아이템인포-BLUEItemInfo3(무거움)" ITEMinfo01_SEC
SetOutPath "$INSTDIR"
File /a /r "E:BlackUIItemInfoBlueItemInfo3"
SectionEnd
SectionGroupEnd
Section /o "퀘스트 도우미" Quest_SEC
SetOutPath "$INSTDIR"
File /a /r "E:BlackUIQuest"
SectionEnd
Section /o "주둔지 도우미" Garrison_SEC
SetOutPath "$INSTDIR"
File /a /r "E:BlackUIGarrison"
SectionEnd
Section /o "희귀보스 도우미" Npcscan_SEC
SetOutPath "$INSTDIR"
File /a /r "E:BlackUINpcscan"
SectionEnd
Section /o "보물탐색 도우미" HandyNote_SEC
SetOutPath "$INSTDIR"
File /a /r "E:BlackUIHandyNote"
SectionEnd
Section /o "채집채광 도우미" Gathermate2_SEC
SetOutPath "$INSTDIR"
File /a /r "E:BlackUIgathermate"
SectionEnd
Section /o "통합 가방 도우미-AdiBags" Bag_SEC
SetOutPath "$INSTDIR"
File /a /r "E:BlackUIBag"
SectionEnd
# 섹션에 대한 설명
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
!insertmacro MUI_DESCRIPTION_TEXT ${Basic_SEC} "텍스쳐, 액션바, 유닛프레임 등을 포함합니다."
!insertmacro MUI_DESCRIPTION_TEXT ${Fonts_SEC} "Fonts(글꼴) 설정"
!insertmacro MUI_DESCRIPTION_TEXT ${Raid_SEC} "공격대 도우미 (DBM 및 레이드 프레임)"
!insertmacro MUI_DESCRIPTION_TEXT ${Raid01_SEC} "공격대 보스 경보 도우미 매우 무거움)"
!insertmacro MUI_DESCRIPTION_TEXT ${Raid02_SEC} "(체력,마나,버프,디버프)강조 공격대 프레임 (메모리/CPU 점유율 높음)"
!insertmacro MUI_DESCRIPTION_TEXT ${Raid03_SEC} "바닥 경보 도우미(소음 경보)"
!insertmacro MUI_DESCRIPTION_TEXT ${Raid04_SEC} "막공 골드 도우미 (거래 내역 확인)"
!insertmacro MUI_DESCRIPTION_TEXT ${Meter_SEC} "어그로 및 데미지 미터기 "
!insertmacro MUI_DESCRIPTION_TEXT ${Meter01_SEC} "데미지순위와 힐순위, DPS등을 알려줍니다. (메모리/CPU 점유율 높음)"
!insertmacro MUI_DESCRIPTION_TEXT ${Meter02_SEC} "어그로획득량을 알려줍니다."
!insertmacro MUI_DESCRIPTION_TEXT ${ITEMInfo_SEC} "아이템의 정보를 보여줍니다."
!insertmacro MUI_DESCRIPTION_TEXT ${ITEMInfo01_SEC} "아이템의 정보 및 드롭 위치를 보여줍니다."
!insertmacro MUI_DESCRIPTION_TEXT ${Quest_SEC} "퀘스트에 유용한 정보를 보여줍니다."
!insertmacro MUI_DESCRIPTION_TEXT ${Garrison_SEC} "주둔지의 추종자 임무 확인 및 임무 자동화"
!insertmacro MUI_DESCRIPTION_TEXT ${Npcscan_SEC} "희귀보스 및 펫의 탐색의 정보 표시(매우 무거움)"
!insertmacro MUI_DESCRIPTION_TEXT ${HandyNote_SEC} "드레노어의 보물탐색의 정보 표시(무거움)"
!insertmacro MUI_DESCRIPTION_TEXT ${Gathermate2_SEC} "채집 및 채광 지도 표시 (무거움)"
!insertmacro MUI_DESCRIPTION_TEXT ${Bag_SEC} "가방(AdiBags)의 정보를 전체 통합으로 보여줍니다"
!insertmacro MUI_FUNCTION_DESCRIPTION_END
# 바로가기와 레지스트리 생성 섹션
Section -AdditionalIcons
CreateDirectory "$SMPROGRAMS${PRODUCT_NAME} ${PRODUCT_VERSION}"
CreateShortCut "$SMPROGRAMS${PRODUCT_NAME} ${PRODUCT_VERSION}${PRODUCT_NAME} ${PRODUCT_VERSION} 제거.lnk" "$INSTDIR${PRODUCT_NAME} ${PRODUCT_VERSION}_uninst.exe"
CreateShortCut "$SMPROGRAMS${PRODUCT_NAME} ${PRODUCT_VERSION}World of Warcraft 실행.lnk" "$INSTDIRWorld of Warcraft Launcher.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.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 "와우의 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"
RMDir /r "$INSTDIRWTF"
RMDir /r "$INSTDIRFonts"
StrCmp $R4 1 0 nextU
## 원래 설정으로
Rename "$INSTDIROldInterface" "$INSTDIRInterface"
Rename "$INSTDIROldWTF" "$INSTDIRWTF"
RMDir /r "$INSTDIROld"
nextU:
## 바로가기, 레지스트리 삭제
Delete "$DESKTOP${PRODUCT_NAME} ${PRODUCT_VERSION} 제거.lnk"
RMDir /r "$SMPROGRAMS${PRODUCT_NAME} ${PRODUCT_VERSION}"
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