확장팩 팁과 노하우 게시판

전체보기

모바일 상단 메뉴

본문 페이지

[애드온] [nsi] 설치 애드온 모음집 만들기 I 해상도

장군라작스2
조회: 5505
2012-09-15 01:53:23

설치 애드온 만들기 I

라이센스 없는 해상도 1280x1024, 1960x1020 (고정) 선택 설치 애드온 모음집 만들기
 
 
-- 목록 --


Test UI2.nsi ; 스크립트가 있는 데이터 ;(초급 사용자는 HM NIS Edit, Venis IX 로 Open 사용 권장)

AccountInf.ini ; 캐릭터 ini

2button.ini ; 해상도1280x1024, 1960x1020 ini (개인에 맞게 선택 가능)

wow.ico ; 설치 애드온이 만들어 지고 나서 생기는 설치 아이콘 (개인이 선택 가능, 권장 크기 48 X 48)

wow_uninst ; 제거 아이콘 (개인이 선택 가능, 권장 크기 48 X 48)

RIGHT Head.bmp : 설치 애드온의 오른쪽 상단 일부 화면 (권장 크기 : 167 X 40)

wow_welcome.bmp ; 설치 애드온의 설치 화면의 일부 화면 (권장 크기 : 200 X 300, 164 X 314)

License.txt ; 설치 애드온의 설치 화면에서 나오는 라이센스 항목 (본인에 맞게 설정 가능)

var 폴더 : 각 해상도 WTF

 

CopyFiles "C:$insdirvar$INI_VIEW*.*" "$INSTDIR" : 각 해상도가 들어가는 폴더

테스터 UI 5.0.4_b.exe ; 실행 파일 예제

 

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

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

 

라이센스 없는 해상도 1280x1024, 1960x1020 없는 설치 화면

 

 

설치 애드온 만들기 


다운로드 :

 

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

http://nsis.sourceforge.net/

http://nsis.sourceforge.net/Download

 

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

http://hmne.sourceforge.net/index.php#Download


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

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


 

- 컴파일 방법 -

 

Venis IX -> Tools -> Comfile

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

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

 

-- 설명 --

 

  !define PRODUCT_NAME "TestUI" ; 설치 애드온 이름 (개인에 맞게 변경, 예제 Test -> RUI) 
  !define PRODUCT_VERSION "5.0.4" ;프로그램의 버전 (개인에 맞게 변경, 예제 5.0.4a -> 5.1.0)
  !define PRODUCT_PUBLISHER "테스터" ;프로그램을 배포하는 사람 (변경, 예제 Test -> RUI)
## 파일 복사
  File /a /r "D:UIUI" ; 개인에 맞게 애드온을 생성한 폴더 변경

 

-- 참고 애드온 폴더 --

 

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

 

예제)

 

## 파일 복사
  File /a /r "D:/UI/Raidpack/DBM/" ; 파일 복사 경로
## 드라이브 실제 복사 경로
D:/UI/Raidpack/DBM/Interface/AddOns/ ; AddOns 폴더에 애드온 전체 파일 넣기

 

-- 스크립트 --
 
## 배포할 프로그램의 정보
  !define PRODUCT_NAME "테스터 UI"
  !define PRODUCT_VERSION "5.0.4_b"
  !define PRODUCT_PUBLISHER "테스터"
  !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_HEADERIMAGE
  !define MUI_HEADERIMAGE_BITMAP "Right Head.BMP" ; (권장크기 : 160 X 40)
  !define MUI_HEADERIMAGE_UNBITMAP "Right Head.BMP"
  !define MUI_HEADERIMAGE_RIGHT
  !define MUI_WELCOMEFINISHPAGE_BITMAP "wow_welcome.BMP" ;(권장크기 200 X 300)
  !define MUI_WELCOMEFINISHPAGE_BITMAP_NOSTRETCH
  !define MUI_UNWELCOMEFINISHPAGE_BITMAP "wow_welcome.BMP"
  !define MUI_UNWELCOMEFINISHPAGE_BITMAP_NOSTRETCH
  !define MUI_LICENSEPAGE_BGCOLOR /gray

## 설치 프로그램의 정보 설정
  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 "WinMessages.nsh"
  !insertmacro StrFilter
  !insertmacro WordFind
  !include "FileFunc.nsh"
  !insertmacro DirState
  !insertmacro un.DirState
  ReserveFile "AccountInf.ini"
  ReserveFile "2button.ini"
  !insertmacro MUI_RESERVEFILE_INSTALLOPTIONS

## 전역 변수 선언
  Var VER
  Var INI_ACCOUNT
  Var INI_SERVER
  Var INI_CHARACTER
  Var RE_ACCOUNT_TOTAL
  Var RE_ACCOUNT_NUM
  Var INI_VIEW
  Var INI_VK

 
## 설치 프로그램이 나타나기 전에 수행할 함수
  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

## 콤포넌트페이지 설정
  !define MUI_COMPONENTSPAGE_TEXT_TOP "자신의 클래스/사양에 맞게 불필요한 애드온은 설치하지 않도록 꼼꼼히 따져보시기 바랍니다."
  !define MUI_COMPONENTSPAGE_TEXT_DESCRIPTION_TITLE "세부항목"

## 디렉토리페이지 설정
  !define MUI_DIRECTORYPAGE_TEXT_TOP "테스터 UI 5.0.4_a 애드온 패키지를 다음 폴더에 설치할 예정입니다.다른 폴더에 설치를 원하시면 '찾아보기'버튼을 눌러서 다른 폴더를 선택해주세요. 와우가 설치된 최상위 폴더만 선택하면 됩니다.하위 항목인 /interface/addns 까지 선택하실경우 제대로 설치되지 않습니다." ;페이지 상단에 출력할 문자열.
  !insertmacro MUI_PAGE_WELCOME

Page custom viewpage viewinf ; 해상도 정보 페이지

  Function viewpage ; 해상도 정보 보여주기
    !insertmacro MUI_HEADER_TEXT "$(TEXT_IO_TITLE)" "$(TEXT_IO_SUBTITLE)"
    !insertmacro MUI_INSTALLOPTIONS_EXTRACT "2button.ini"
    !insertmacro MUI_INSTALLOPTIONS_DISPLAY "2button.ini"
  FunctionEnd

## 입력된 레이아웃 지정 정보 변수에 저장

  Function viewInf ; 해상도 정보 페이지에 삽입될 함수

  !insertmacro MUI_INSTALLOPTIONS_READ $R1 "2button.ini" "Field 3" "state"
  !insertmacro MUI_INSTALLOPTIONS_READ $R2 "2button.ini" "Field 4" "state"

  StrCmp $R1 "1" 0 +3
  StrCpy $INI_VIEW "STANDARD"
  goto end
  StrCmp $R2 "1" 0 +3
  StrCpy $INI_VIEW "STANDARDW"
  goto end

  StrCpy $INI_VK "none"
  end:
  Functionend

  Page custom AccountInfPage AccountInf
 
  Function AccountInfPage
    !insertmacro MUI_HEADER_TEXT "$(TEXT_IO_TITLE)" "$(TEXT_IO_SUBTITLE)"
    !insertmacro MUI_INSTALLOPTIONS_EXTRACT "AccountInf.ini"
    !insertmacro MUI_INSTALLOPTIONS_DISPLAY "AccountInf.ini"
  FunctionEnd
 
  Function AccountInf
 
## 입력된 사용자 정보 읽어와서 변수에 저장
    !insertmacro MUI_INSTALLOPTIONS_READ $INI_ACCOUNT "AccountInf.ini" "Field 3" "State"
    !insertmacro MUI_INSTALLOPTIONS_READ $INI_SERVER "AccountInf.ini" "Field 5" "State"
    !insertmacro MUI_INSTALLOPTIONS_READ $INI_CHARACTER "AccountInf.ini" "Field 7" "State"

## 변수에 저장된 계정명 대문자로 변환
    ${StrFilter} "$INI_ACCOUNT" "+" "" "" $INI_ACCOUNT

## 레지스트리 경로에 필요한 변수 저장
    StrCpy $1 "${PRODUCT_DIR_REGKEY}$INI_ACCOUNT$INI_SERVER$INI_CHARACTER"
    StrCpy $2 "${PRODUCT_DIR_REGKEY}$INI_ACCOUNT$INI_SERVER"
    StrCpy $3 "${PRODUCT_DIR_REGKEY}$INI_ACCOUNT"

## 레지스트리에서 입력한 케릭터와 동일한 케릭터가 있을 경우 재설치 여부
    ReadRegStr "$0" "${PRODUCT_DIR_ROOT_REGKEY}" "$1" "설치여부"
    StrCmp $0 "" toReg
    StrCmp $0 "no" 0 seekRe
    MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "해당 케릭터는 이미 설치 예정입니다.$n$n예정을 취소하시겠습니까?" IDYES +2
    abort
    DeleteRegKey "${PRODUCT_DIR_ROOT_REGKEY}" "$1"
    EnumRegKey "$9" "${PRODUCT_DIR_ROOT_REGKEY}" "$2" 0
    StrCmp "$9" "" 0 clear
    DeleteRegKey "${PRODUCT_DIR_ROOT_REGKEY}" "$2"
    EnumRegKey "$9" "${PRODUCT_DIR_ROOT_REGKEY}" "$3" 0
    StrCmp "$9" "" 0 clear
    DeleteRegKey "${PRODUCT_DIR_ROOT_REGKEY}" "$3"
    EnumRegKey "$9" "${PRODUCT_DIR_ROOT_REGKEY}" "${PRODUCT_DIR_REGKEY}" 0
    StrCmp "$9" "" 0 clear
    DeleteRegKey "${PRODUCT_DIR_ROOT_REGKEY}" "${PRODUCT_DIR_REGKEY}"
    Goto clear
  seekRe:
    StrCmp $0 "re" +2
    MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "해당 케릭터는 이미 설치 되었습니다.$n$n같은 케릭터를 재설치 하시게습니까?" IDNO +3
    WriteRegExpandStr "${PRODUCT_DIR_ROOT_REGKEY}" "$1" "설치여부" "re"
    Goto reReg
    abort

## 입력된 사용자 정보를 레지스트리로 만들기
 
  toReg:
    WriteRegExpandStr "${PRODUCT_DIR_ROOT_REGKEY}" "$1" "설치여부" "no"
   
  reReg:
    WriteRegExpandStr "${PRODUCT_DIR_ROOT_REGKEY}" "$1" "직업" "$INI_CHARACTER"
   
## "설치할 케릭이 더 있는습니까"를 확인하고 있을 경우 기존 케릭 정보 삭제하고 페이지에 머무르기
    MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "설치할 케릭이 더 있습니까?" IDNO end
   
  clear:
  !insertmacro MUI_INSTALLOPTIONS_READ $INI_CHARACTER "AccountInf.ini" "Field 7" "HWND"
    SendMessage $INI_CHARACTER ${WM_SETTEXT} 0 "STR:"
    abort
  end:
  FunctionEnd

  !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"

## 사용자 정보 입력 페이지의 제목
  LangString TEXT_IO_TITLE ${LANG_KOREAN} "사용자 정보 입력"
  LangString TEXT_IO_SUBTITLE ${LANG_KOREAN} "올바른 설치를 위해 사용자 정보를 입력받습니다."

## 섹션 삽입 함수
  Function WTFyn
  Pop "$RE_ACCOUNT_TOTAL"
  StrCpy $1 0
 
account:
  EnumRegKey "$3" "${PRODUCT_DIR_ROOT_REGKEY}" "${PRODUCT_DIR_REGKEY}" $1
  StrCmp "$3" "" end
  IntOp $1 $1 + 1
  StrCpy "$INI_ACCOUNT" "$3"
  StrCpy $4 0

server:
  StrCpy "$5" "${PRODUCT_DIR_REGKEY}$INI_ACCOUNT"
  EnumRegKey "$6" "${PRODUCT_DIR_ROOT_REGKEY}" "$5" $4
  StrCmp "$6" "" account
  IntOp $4 $4 + 1
  StrCpy "$INI_SERVER" "$6"
  StrCpy $7 0

character:
  StrCpy "$8" "$5$INI_SERVER"
  EnumRegKey "$9" "${PRODUCT_DIR_ROOT_REGKEY}" "$8" $7
  StrCmp "$9" "" server
  IntOp $7 $7 + 1
  StrCpy "$INI_CHARACTER" "$9"
  StrCpy "$2" "$8$INI_CHARACTER"
  ReadRegStr "$0" "${PRODUCT_DIR_ROOT_REGKEY}" "$2" "설치여부"
  StrCmp "$0" "yes" 0 +2
  StrCpy "$RE_ACCOUNT_TOTAL" "$RE_ACCOUNT_TOTAL$n$INI_ACCOUNT"
  Goto character
end:
  Push "$RE_ACCOUNT_TOTAL"
  FunctionEnd

  Function WTFLoop ;레지스트리에 생성된 사용자 정보에 따라 WTF폴더내 내용의 생성과 복사

  Pop "$RE_ACCOUNT_TOTAL"
  StrCpy $1 0
  CopyFiles "$INSTDIRvar$INI_VIEW*.*" "$INSTDIR" :각 해상도가 들어가는 폴더

account:
  EnumRegKey "$3" "${PRODUCT_DIR_ROOT_REGKEY}" "${PRODUCT_DIR_REGKEY}" $1
  StrCmp "$3" "" end
  IntOp $1 $1 + 1
  StrCpy "$INI_ACCOUNT" "$3"
  StrCpy $4 0

server:
  StrCpy "$5" "${PRODUCT_DIR_REGKEY}$INI_ACCOUNT"
  EnumRegKey "$6" "${PRODUCT_DIR_ROOT_REGKEY}" "$5" $4
  StrCmp "$6" "" account
  IntOp $4 $4 + 1
  StrCpy "$INI_SERVER" "$6"
  StrCpy $7 0

character:
  ClearErrors
  StrCpy "$8" "$5$INI_SERVER"
  EnumRegKey "$9" "${PRODUCT_DIR_ROOT_REGKEY}" "$8" $7
  StrCmp "$9" "" server
  IntOp $7 $7 + 1
  StrCpy "$INI_CHARACTER" "$9"
  StrCpy "$2" "$8$INI_CHARACTER"
  ReadRegStr "$0" "${PRODUCT_DIR_ROOT_REGKEY}" "$2" "설치여부"
  StrCmp "$0" "yes" character install

install:
  StrCmp "$0" "re" installAccount
  ${WordFind} "$RE_ACCOUNT_TOTAL" "$INI_ACCOUNT" "#" $RE_ACCOUNT_NUM
  StrCmp $RE_ACCOUNT_NUM "no" installAccount

installAccount:
  CreateDirectory "$INSTDIRWTFAccount$INI_ACCOUNT"
  CreateDirectory "$INSTDIRWTFAccount$INI_ACCOUNTSavedVariables"
  CopyFiles /FILESONLY "$INSTDIRWTFAccount계정명*.*" "$INSTDIRWTFAccount$INI_ACCOUNT"
  CopyFiles /FILESONLY "$INSTDIRWTFAccount계정명SavedVariables*.*" "$INSTDIRWTFAccount$INI_ACCOUNTSavedVariables"
#  CopyFiles /FILESONLY "$INSTDIROldWTFAccount$INI_ACCOUNTSavedVariablesBlinkCallMe.lua" "$INSTDIRWTFAccount$INI_ACCOUNTSavedVariablesBlinkCallMe.lua"
#  CopyFiles /FILESONLY "$INSTDIROldWTFAccount$INI_ACCOUNTSavedVariablesClick2Cast.lua" "$INSTDIRWTFAccount$INI_ACCOUNTSavedVariablesClick2Cast.lua"
#  CopyFiles /FILESONLY "$INSTDIROldWTFAccount$INI_ACCOUNTSavedVariablesTalented.lua" "$INSTDIRWTFAccount$INI_ACCOUNTSavedVariablesTalented.lua"


  ## 단축키,매크로 설정 복사
#  CopyFiles /FILESONLY "$INSTDIROldWTFAccount$INI_ACCOUNTbindings-cache.wtf" "$INSTDIRWTFAccount$INI_ACCOUNTbindings-cache.wtf"
#  CopyFiles /FILESONLY "$INSTDIROldWTFAccount$INI_ACCOUNTmacros-cache.txt" "$INSTDIRWTFAccount$INI_ACCOUNTmacros-cache.txt"
  goto installserver
 
installServer:
  CreateDirectory "$INSTDIRWTFAccount$INI_ACCOUNT$INI_SERVER"
  CopyFiles "$INSTDIRWTFAccount계정명서버명케릭명" "$INSTDIRWTFAccount$INI_ACCOUNT$INI_SERVER$INI_CHARACTER"

  ## 개인매크로,단축키 설정 복사
#  CopyFiles /FILESONLY "$INSTDIROldWTFAccount$INI_ACCOUNT$INI_SERVER$INI_CHARACTERmacros-cache.txt" "$INSTDIRWTFAccount$INI_ACCOUNT$INI_SERVER$INI_CHARACTERmacros-cache.txt"
#  CopyFiles /FILESONLY "$INSTDIROldWTFAccount$INI_ACCOUNT$INI_SERVER$INI_CHARACTERbindings-cache.wtf" "$INSTDIRWTFAccount$INI_ACCOUNT$INI_SERVER$INI_CHARACTERbindings-cache.wtf"
#  CopyFiles /FILESONLY "$INSTDIROldWTFAccount$INI_ACCOUNT$INI_SERVER$INI_CHARACTERchat-cache.txt" "$INSTDIRWTFAccount$INI_ACCOUNT$INI_SERVER$INI_CHARACTERchat-cache.txt"

  CreateDirectory "$INSTDIRWTFAccount$INI_ACCOUNT$INI_SERVER$INI_CHARACTERSavedVariables"
#  CopyFiles /FILESONLY "$INSTDIROldWTFAccount$INI_ACCOUNT$INI_SERVER$INI_CHARACTERSavedVariablesBlinkChatHead.lua" "$INSTDIRWTFAccount$INI_ACCOUNT$INI_SERVER$INI_CHARACTERSavedVariablesBlinkChatHead.lua"

  WriteRegExpandStr "${PRODUCT_DIR_ROOT_REGKEY}" "$2" "설치여부" "yes"
  goto character

end:
  Push "$RE_ACCOUNT_TOTAL"
  FunctionEnd

## 기본 섹션

  Section "!기본 설치 항목" Basic_SEC

  SectionIn RO
  SetOverwrite on
  SetOutPath "$INSTDIR"
  SetOverwrite on
  Call WTFyn
  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 "D:UIUI"

## 여러 케릭의 WTF폴더 설치 함수
  Call WTFLoop
 
## 복사 원본 폴더 삭제
  RMDir /r $INSTDIRWTFAccount계정명
  RMDir /r $INSTDIRvar
 
SectionEnd

SectionGroup "공격대 도우미" Raid_SEC

  Section /o "DBM" add01_SEC
    SetOutPath "$INSTDIR"
    File /a /r "D:UIRaidpackDBM"
  SectionEnd

  Section /o "Grid" add02_SEC
    SetOutPath "$INSTDIR"
    File /a /r "D:UIRaidpackGrid"
  SectionEnd

SectionGroupEnd

SectionGroup "미터기" MI_SEC

  Section /o "Omen" MI01_SEC
    SetOutPath "$INSTDIR"
    File /a /r "D:UIRaidpackOmen"
  SectionEnd

  Section /o "Recount" MI02_SEC
    SetOutPath "$INSTDIR"
    File /a /r "D:UIRaidpackRecount"
  SectionEnd

SectionGroupEnd

  Section /o "GTFO" add03_SEC
    SetOutPath "$INSTDIR"
    File /a /r "D:UIRaidpackGTFO"
  SectionEnd


 
# 섹션에 대한 설명
  !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
  !insertmacro MUI_DESCRIPTION_TEXT ${Basic_SEC} "텍스쳐, 액션바, 유닛프레임 등을 포함"
  !insertmacro MUI_DESCRIPTION_TEXT ${Raid_SEC} "레이드에 필요한 애드온"
  !insertmacro MUI_DESCRIPTION_TEXT ${add01_SEC} "공격대 보스 경고 알림이"
  !insertmacro MUI_DESCRIPTION_TEXT ${add02_SEC} "Grid 레이드 유닛 프레임"
  !insertmacro MUI_DESCRIPTION_TEXT ${add03_SEC} "바닥 경고"
  !insertmacro MUI_DESCRIPTION_TEXT ${MI_SEC} "어그로 및 데미지 미터기 "
  !insertmacro MUI_DESCRIPTION_TEXT ${MI01_SEC} "어그로 경고 알림이"
  !insertmacro MUI_DESCRIPTION_TEXT ${MI02_SEC} "데미지 미터기"
  !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" "$INSTDIRLauncher.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"
  Rename "$INSTDIROldFonts" "$INSTDIRFonts"
  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

 

Lv62 장군라작스2

모바일 게시판 하단버튼

댓글

새로고침
새로고침

모바일 게시판 하단버튼

지금 뜨는 인벤

더보기+

모바일 게시판 리스트

모바일 게시판 하단버튼

글쓰기

모바일 게시판 페이징

최근 HOT한 콘텐츠

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