杉宫竹苑工作室

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2396|回复: 0

中文汉化安装包的NSIS脚本

[复制链接]
发表于 2017-10-16 01:44:48 | 显示全部楼层 |阅读模式

正式会员享受无限制浏览网站功能和高速网盘下载,赶快加入本站吧!

您需要 登录 才可以下载或查看,没有账号?立即注册

x

  1. ; HM NIS Edit Wizard helper defines
  2. !define PRODUCT_NAME "ef - the first tale. 繁體中文版"
  3. !define PRODUCT_VERSION "1.0"
  4. !define PRODUCT_PUBLISHER "Router Buster"
  5. !define PRODUCT_WEB_SITE "http://shibunoheya.blog86.fc2.com/"
  6. !define PRODUCT_DIR_REGKEY "Software\Microsoft\Windows\CurrentVersion\App Paths\ef_first_1001chs.exe"
  7. !define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
  8. !define PRODUCT_UNINST_ROOT_KEY "HKLM"

  9. ; MUI 1.67 compatible ------
  10. !include "MUI.nsh"

  11. ; MUI Settings
  12. !define MUI_ABORTWARNING
  13. !define MUI_ICON "E:\ef patch working folder\ef.ico"
  14. ;!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico"
  15. !define MUI_UNICON "E:\ef patch working folder\ef.ico"

  16. ; Language Selection Dialog Settings
  17. !define MUI_LANGDLL_REGISTRY_ROOT "${PRODUCT_UNINST_ROOT_KEY}"
  18. !define MUI_LANGDLL_REGISTRY_KEY "${PRODUCT_UNINST_KEY}"
  19. !define MUI_LANGDLL_REGISTRY_VALUENAME "NSIS:Language"

  20. ; Welcome page
  21. !insertmacro MUI_PAGE_WELCOME
  22. ; License page
  23. !define MUI_LICENSEPAGE_CHECKBOX
  24. !insertmacro MUI_PAGE_LICENSE "E:\ef patch working folder\license.txt"
  25. ; Directory page
  26. !insertmacro MUI_PAGE_DIRECTORY
  27. ; Instfiles page
  28. !insertmacro MUI_PAGE_INSTFILES
  29. ; Finish page
  30. !define MUI_FINISHPAGE_RUN "$INSTDIR\ef_first_1001chs.exe"
  31. ;!define MUI_FINISHPAGE_RUN "$INSTDIR\ef_first_1001zhh.exe"
  32. !insertmacro MUI_PAGE_FINISH

  33. ; Uninstaller pages
  34. !insertmacro MUI_UNPAGE_INSTFILES

  35. ; Language files
  36. !insertmacro MUI_LANGUAGE "SimpChinese"
  37. VIProductVersion "1.0.0.0"
  38. VIAddVersionKey /LANG=2052 "FileDescription" "${PRODUCT_NAME}"
  39. VIAddVersionKey /LANG=2052 "Comments" "${PRODUCT_WEB_SITE}"
  40. VIAddVersionKey /LANG=2052 "ProductName" "${PRODUCT_NAME}"
  41. VIAddVersionKey /LANG=2052 "LegalCopyright" ""
  42. VIAddVersionKey /LANG=2052 "CompanyName" "${PRODUCT_PUBLISHER}"
  43. VIAddVersionKey /LANG=2052 "FileVersion" "${PRODUCT_VERSION}"

  44. ; MUI end ------

  45. Name "${PRODUCT_NAME} ${PRODUCT_VERSION}"
  46. OutFile "Setup_chs.exe"
  47. InstallDir "$EXEDIR"
  48. InstallDirRegKey HKLM "${PRODUCT_DIR_REGKEY}" ""
  49. ShowInstDetails show
  50. ShowUnInstDetails show

  51. Function .onInit
  52.   !insertmacro MUI_LANGDLL_DISPLAY
  53.   InitPluginsDir
  54.   ReadRegStr $INSTDIR HKLM "SOFTWARE\minori\ef_first" "InstallDir"
  55. FunctionEnd

  56. ;; CHECK THIS FOR FONT INSTALLATION: $FONTS

  57. Section "MainSection" SEC01
  58. ;--------------------------copy-----------------------------
  59.   SetOutPath "$INSTDIR"
  60.   DetailPrint "正在複製檔案..."
  61.   SetOverwrite ifnewer
  62.   File "E:\ef patch working folder\ef_first_1001chs.exe"
  63.   CreateDirectory "$SMPROGRAMS\"
  64.   CreateShortCut "$SMPROGRAMS\\ef - the first tale. 繁體中文版.lnk" "$INSTDIR\ef_first_1001chs.exe"
  65.   CreateShortCut "$DESKTOP\ef - the first tale. 繁體中文版.lnk" "$INSTDIR\ef_first_1001chs.exe"
  66.   SetOverwrite on
  67.   File "E:\ef patch working folder\scr.paz"
  68.   File "E:\ef patch working folder\mov.paz"
  69.   File "E:\ef patch working folder\tool\paz.exe"
  70.   File "E:\ef patch working folder\tool\paz.ini"
  71. ;-------------------------extract----------------------------
  72. ;; TODO - 下面这部分只是测试!!!
  73.   CreateDirectory "$INSTDIR\scr"
  74.   nsExec::ExecToStack '"cd" $INSTDIR'
  75.   nsExec::ExecToStack '"dir" > files.txt'
  76.   nsExec::ExecToStack '"$INSTDIR\paz.exe" e $INSTDIR\scr.paz'
  77. ;  RMDir "$INSTDIR"

  78.    DetailPrint "正在更新檔案..."
  79. SectionEnd

  80. Section -Post
  81.   WriteUninstaller "$INSTDIR\uninst.exe"
  82.   WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "" "$INSTDIR\ef_first_1001chs.exe"
  83.   WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)"
  84.   WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIR\uninst.exe"
  85.   WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayIcon" "$INSTDIR\ef_first_1001chs.exe"
  86.   WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}"
  87.   WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "URLInfoAbout" "${PRODUCT_WEB_SITE}"
  88.   WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "Publisher" "${PRODUCT_PUBLISHER}"
  89.   WriteRegStr HKLM "SOFTWARE\minori\ef_first" "InstallKeyCode" "07303ed1"
  90.   WriteRegStr HKLM "SOFTWARE\minori\ef_first" "SerialCode" "11111-11111-11111-11111"
  91.   WriteRegStr HKLM "SOFTWARE\minori\ef_first" "InstallDir" "$INSTDIR"
  92. SectionEnd


  93. Function un.onUninstSuccess
  94.   HideWindow
  95.   MessageBox MB_ICONINFORMATION|MB_OK "「ef - the first tale. 繁體中文版」已成功地从你的計算機移除。"
  96. FunctionEnd

  97. Function un.onInit
  98. !insertmacro MUI_UNGETLANGUAGE
  99.   MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "你确实要完全移除「ef - the first tale. 繁體中文版」,其及所有組件?" IDYES +2
  100.   Abort
  101. FunctionEnd

  102. Section Uninstall
  103.   Delete "$INSTDIR\uninst.exe"
  104.   Delete "$INSTDIR\mov.paz"
  105.   Delete "$INSTDIR\scr.paz"
  106.   Delete "$INSTDIR\ef_first_1001chs.exe"

  107.   ;Delete "$DESKTOP\ef - the first tale. 繁體中文版(for 繁體作業系統).lnk"
  108.   ;Delete "$SMPROGRAMS\\ef - the first tale. 繁體中文版(for 繁體作業系統).lnk"
  109.   Delete "$DESKTOP\ef - the first tale. 繁體中文版(for 简体操作系统).lnk"
  110.   Delete "$SMPROGRAMS\\ef - the first tale. 繁體中文版(for 简体操作系统).lnk"

  111.   RMDir "$SMPROGRAMS\"
  112.   RMDir "$INSTDIR"

  113.   DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
  114.   DeleteRegKey HKLM "${PRODUCT_DIR_REGKEY}"
  115.   SetAutoClose true
  116. SectionEnd
复制代码
这个安装包的核心还是在于中间对我另外写的一个外部工具,"paz.exe"的调用.用paz.exe完成对原始归档的抽出和更新.上面的脚本里,extract的那段只是验证了几个关键点是否可行: 1.是否能实现目录转换
2.是否能实现目录中文件列表输出
3.是否能将原始paz归档的内容抽出.


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|SgzyStudio

GMT+8, 2024-5-18 04:15 , Processed in 0.118765 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表