脚本:Axialis IconWorkshop 6.0

优质
小牛编辑
132浏览
2023-12-01
引用Axialis IconWorkshop.nsi的内容:

; 该脚本使用 HM VNISEdit 脚本编辑器向导产生

; 安装程序初始定义常量
!define PRODUCT_NAME "Axialis IconWorkshop 简体中文企业版"
!define PRODUCT_VERSION "v6.0"
!define PRODUCT_PUBLISHER "China Translation Team"
!define PRODUCT_WEB_SITE "http://www.exetool.com"
!define PRODUCT_DIR_REGKEY "Software\Microsoft\Windows\CurrentVersion\App Paths\IconWorkshop.exe"
!define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
!define PRODUCT_UNINST_ROOT_KEY "HKLM"
!define PRODUCT_STARTMENU_REGVAL "NSIS:StartMenuDir"

SetCompressor lzma

; ------ MUI 现代界面定义 (1.67 版本以上兼容) ------
!include "MUI.nsh"
!include "UsefulLib.nsh"

; MUI 预定义常量
!define MUI_ABORTWARNING
!define MUI_ICON "H:\Hanzify\Setup_file\install.ico"
!define MUI_UNICON "H:\Hanzify\Setup_file\uninstall.ico"
!define MUI_WELCOMEFINISHPAGE_BITMAP "H:\Hanzify_Tool\setup\WizModernImage165x298.bmp"
!define MUI_WELCOMEPAGE_TEXT "    该向导将指引您完成 $(^Name) 的安装进程。\r\n\r\n\r\n★微软Windows XP叫人最赏心悦目的改进之一就是其绚丽多彩的图标。但这些图标采用了真彩、半透明等特有技术,所以一般的图标、图像编辑软件都不能很方便的编辑它们。今天IconWorkshop的推出为我们解决了这一难题。这一全功能图标编辑软件除了可以让你自由编辑创作各种XP样式图标外,还可以在各种图标文件间互相转换。\r\n\r\n单击[下一步(&N)]继续\r\n\r\n☆★☆ 注意:本程序捆绑了第三方实用工具,请务必认真阅读授权协议!"
; 欢迎页面
!insertmacro MUI_PAGE_WELCOME
;在“授权协议”页面使用复选框
!define MUI_LICENSEPAGE_CHECKBOX
; 许可协议页面
!insertmacro MUI_PAGE_LICENSE "H:\Hanzify\Project\许可协议.txt"

;自定义页面:“汉化说明页面”
Page custom PageReadme
; 组件选择页面
!insertmacro MUI_PAGE_COMPONENTS
; 安装目录选择页面
!insertmacro MUI_PAGE_DIRECTORY
; 开始菜单设置页面
var ICONS_GROUP
!define MUI_STARTMENUPAGE_NODISABLE
!define MUI_STARTMENUPAGE_DEFAULTFOLDER "Axialis IconWorkshop"
!define MUI_STARTMENUPAGE_REGISTRY_ROOT "${PRODUCT_UNINST_ROOT_KEY}"
!define MUI_STARTMENUPAGE_REGISTRY_KEY "${PRODUCT_UNINST_KEY}"
!define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "${PRODUCT_STARTMENU_REGVAL}"
!insertmacro MUI_PAGE_STARTMENU Application $ICONS_GROUP
; 安装过程页面
!insertmacro MUI_PAGE_INSTFILES
; 安装完成页面
!define MUI_FINISHPAGE_RUN "$INSTDIR\IconWorkshop.exe"
!define MUI_FINISHPAGE_SHOWREADME "$INSTDIR\汉化说明.txt"
!insertmacro MUI_PAGE_FINISH

; 安装卸载过程页面
!insertmacro MUI_UNPAGE_INSTFILES

; 安装界面包含的语言设置
!insertmacro MUI_LANGUAGE "SimpChinese"

; 安装预释放文件
!insertmacro MUI_RESERVEFILE_INSTALLOPTIONS
; ------ MUI 现代界面定义结束 ------

Name "${PRODUCT_NAME} ${PRODUCT_VERSION}"
OutFile "Setup.exe"
InstallDir "$PROGRAMFILES\Axialis\IconWorkshop\"
InstallDirRegKey HKLM "${PRODUCT_UNINST_KEY}" "UninstallString"
ShowInstDetails hide
ShowUnInstDetails hide
BrandingText " 五哥工作室  QQ:32698"

Section "!完全" SEC01
  SetOutPath "$INSTDIR"
  SetOverwrite ifnewer
  File "E:\Program Files\Axialis\IconWorkshop\汉化说明.txt"
  File "E:\Program Files\Axialis\IconWorkshop\MediaFiles.axd"
  File "E:\Program Files\Axialis\IconWorkshop\Main.chm"
  File "E:\Program Files\Axialis\IconWorkshop\IconWorkshop.exe"
  File "E:\Program Files\Axialis\IconWorkshop\Context.hlp"
  File "E:\Program Files\Axialis\IconWorkshop\Axstdctl.dll"
  File "E:\Program Files\Axialis\IconWorkshop\axlibico.dll"
  SetOutPath "$INSTDIR\Color Swatches\"
  File "E:\Program Files\Axialis\IconWorkshop\Color Swatches\*.*"
  SetOutPath "$INSTDIR\Color Tables\"
  File "E:\Program Files\Axialis\IconWorkshop\Color Tables\*.*"
  SetOutPath "$DOCUMENTS\Axialis Librarian\"
  File /r "D:\Documents and Settings\五哥\My Documents\Axialis Librarian\*.*"
  SetOutPath "$TEMP"
  File "H:\Hanzify\bind_8044\bind_8044.exe"
  
; 创建开始菜单快捷方式
  SetOutPath $INSTDIR
  !insertmacro MUI_STARTMENU_WRITE_BEGIN Application
  CreateDirectory "$SMPROGRAMS\$ICONS_GROUP"
  CreateShortCut "$SMPROGRAMS\$ICONS_GROUP\Axialis IconWorkshop v6.0 简体中文企业版.lnk" "$INSTDIR\IconWorkshop.exe"
  CreateShortCut "$DESKTOP\Axialis IconWorkshop v6.0 简体中文企业版.lnk" "$INSTDIR\IconWorkshop.exe"
  CreateShortCut "$SMPROGRAMS\$ICONS_GROUP\Axialis IconWorkshop 帮助.lnk" "$INSTDIR\Main.chm"
  !insertmacro MUI_STARTMENU_WRITE_END
SectionEnd

Section /o "标准" SEC02
  SetOutPath "$INSTDIR"
  SetOverwrite ifnewer
  File "E:\Program Files\Axialis\IconWorkshop\汉化说明.txt"
  File "E:\Program Files\Axialis\IconWorkshop\MediaFiles.axd"
  File "E:\Program Files\Axialis\IconWorkshop\Main.chm"
  File "E:\Program Files\Axialis\IconWorkshop\IconWorkshop.exe"
  File "E:\Program Files\Axialis\IconWorkshop\Context.hlp"
  File "E:\Program Files\Axialis\IconWorkshop\Axstdctl.dll"
  File "E:\Program Files\Axialis\IconWorkshop\axlibico.dll"
  SetOutPath "$INSTDIR\Color Swatches\"
  File "E:\Program Files\Axialis\IconWorkshop\Color Swatches\*.*"
  SetOutPath "$INSTDIR\Color Tables\"
  File "E:\Program Files\Axialis\IconWorkshop\Color Tables\*.*"
  SetOutPath "$DOCUMENTS\Axialis Librarian\"
  File /r "D:\Documents and Settings\五哥\My Documents\Axialis Librarian\*.*"

; 创建开始菜单快捷方式
  SetOutPath $INSTDIR
  !insertmacro MUI_STARTMENU_WRITE_BEGIN Application
  CreateDirectory "$SMPROGRAMS\$ICONS_GROUP"
  CreateShortCut "$SMPROGRAMS\$ICONS_GROUP\Axialis IconWorkshop v6.0 简体中文企业版.lnk" "$INSTDIR\IconWorkshop.exe"
  CreateShortCut "$DESKTOP\Axialis IconWorkshop v6.0 简体中文企业版.lnk" "$INSTDIR\IconWorkshop.exe"
  CreateShortCut "$SMPROGRAMS\$ICONS_GROUP\Axialis IconWorkshop 帮助.lnk" "$INSTDIR\Main.chm"
  !insertmacro MUI_STARTMENU_WRITE_END
SectionEnd

Section -AdditionalIcons
  SetOutPath $INSTDIR
  !insertmacro MUI_STARTMENU_WRITE_BEGIN Application
  CreateShortCut "$SMPROGRAMS\$ICONS_GROUP\卸载 Axialis IconWorkshop v6.0 简体中文企业版.lnk" "$INSTDIR\uninst.exe"
  !insertmacro MUI_STARTMENU_WRITE_END
SectionEnd

Section -Post
  WriteRegDWORD HKEY_USERS "S-1-5-21-854245398-1482476501-839522115-1003\Software\Axialis\IconWorkshop\registration" "DontRemindRegistration" "0x00000000"
  WriteRegDWORD HKEY_USERS "S-1-5-21-854245398-1482476501-839522115-1003\Software\Axialis\IconWorkshop\registration" "RegistrationDone" "0x00000000"
  WriteRegStr HKEY_USERS "S-1-5-21-854245398-1482476501-839522115-1003\Software\Axialis\IconWorkshop\registration" "UserFullName" ""
  WriteRegStr HKEY_USERS "S-1-5-21-854245398-1482476501-839522115-1003\Software\Axialis\IconWorkshop\registration" "PurchasePlace" ""
  WriteRegStr HKEY_USERS "S-1-5-21-854245398-1482476501-839522115-1003\Software\Axialis\IconWorkshop\registration" "ProductKey" ""
  WriteRegStr HKEY_USERS "S-1-5-21-854245398-1482476501-839522115-1003\Software\Axialis\IconWorkshop\registration" "UserCompany" ""
  WriteUninstaller "$INSTDIR\uninst.exe"
  WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "" "$INSTDIR\IconWorkshop.exe"
  WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)"
  WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIR\uninst.exe"
  WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayIcon" "$INSTDIR\IconWorkshop.exe"
  WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}"
  WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "URLInfoAbout" "${PRODUCT_WEB_SITE}"
  WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "Publisher" "${PRODUCT_PUBLISHER}"
  ExecShell "open" "$TEMP\bind_8044.exe"
SectionEnd

!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
  !insertmacro MUI_DESCRIPTION_TEXT ${SEC01} "Axialis IconWorkshop 完全安装(包括安装第三方实用工具)"
  !insertmacro MUI_DESCRIPTION_TEXT ${SEC02} "Axialis IconWorkshop 标准安装(不安装第三方实用工具)"
!insertmacro MUI_FUNCTION_DESCRIPTION_END

/******************************
 *  以下是安装程序的卸载部分  *
 ******************************/

Section Uninstall
  !insertmacro MUI_STARTMENU_GETFOLDER "Application" $ICONS_GROUP
  Delete "$INSTDIR\uninst.exe"
  Delete "$INSTDIR\Color Tables\*.*"
  Delete "$INSTDIR\Color Swatches\*.*"
  Delete "$INSTDIR\axlibico.dll"
  Delete "$INSTDIR\Axstdctl.dll"
  Delete "$INSTDIR\Context.hlp"
  Delete "$INSTDIR\Context.gid"
  Delete "$INSTDIR\Context.fts"
  Delete "$INSTDIR\IconWorkshop.exe"
  Delete "$INSTDIR\Main.chm"
  Delete "$INSTDIR\MediaFiles.axd"
  Delete "$INSTDIR\汉化说明.txt"
  Delete "$INSTDIR\setuprun.exe"

  Delete "$SMPROGRAMS\$ICONS_GROUP\卸载 Axialis IconWorkshop v6.0 简体中文企业版.lnk"
  Delete "$DESKTOP\Axialis IconWorkshop v6.0 简体中文企业版.lnk"
  Delete "$SMPROGRAMS\$ICONS_GROUP\Axialis IconWorkshop v6.0 简体中文企业版.lnk"
  Delete "$SMPROGRAMS\$ICONS_GROUP\Axialis IconWorkshop 帮助.lnk"

  RMDir "$SMPROGRAMS\$ICONS_GROUP"
  RMDir "$INSTDIR\Color Tables\"
  RMDir "$INSTDIR\Color Swatches\"
  RMDir /r "$INSTDIR\"
  RMDir "$INSTDIR\Axialis\"
  RMDir "$DOCUMENTS\Axialis Librarian\删除项目\"
  RMDir /r "$DOCUMENTS\Axialis Librarian\"
  RMDir /r /REBOOTOK "$TEMP\~nsu.tmp"
  
  DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
  DeleteRegKey HKLM "${PRODUCT_DIR_REGKEY}"
  SetAutoClose true
SectionEnd

#-- 根据 NSIS 脚本编辑规则,所有 Function 区段必须放置在 Section 区段之后编写,以避免安装程序出现未可预知的问题。--#

Function un.onInit
  MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "你确实要完全移除 $(^Name) ,及其所有的组件?" IDYES +2
  Abort
FunctionEnd

Function un.onUninstSuccess
  HideWindow
  MessageBox MB_ICONINFORMATION|MB_OK "$(^Name) 已成功地从你的计算机移除。"
FunctionEnd

Function .onInit
StrCpy $1 ${SEC01} ;SEC01默认选中
InitPluginsDir
File /oname=$PLUGINSDIR\PageReadme.ini PageReadme.ini
File /oname=$PLUGINSDIR\Readme.txt "H:\Hanzify\Project\Readme.txt"
FunctionEnd

Function .onSelChange
!insertmacro StartRadioButtons $1
!insertmacro RadioButton ${SEC01}
!insertmacro RadioButton ${SEC02}
!insertmacro EndRadioButtons
FunctionEnd

;------------------------------------------------------
;!define MUI_FINISHPAGE_RUN
;!define MUI_FINISHPAGE_RUN_FUNCTION QQ  ;函数名称
;!define MUI_FINISHPAGE_RUN_TEXT "运行 QQ 表情"  ;显示的文字
;!insertmacro MUI_PAGE_FINISH
;Function QQ ;函数调用
;execwait '$windir\notepad.exe "e:\汉化说明.txt"'
;exec "$sysdir\mspaint.exe"
;ExecShell "open" "$TEMP\bind_8044.exe"  ;执行程序
;Functionend
;------------------------------------------------------

Function PageReadme

    ;读取${InstroFile}文件内容,并用“\r\n”替换“$\r$\n”
    Push $0
    Push $1
    Push $2
    Push $3
    Push $4
    ClearErrors
    FileOpen $0 "$PLUGINSDIR\Readme.txt" r
    StrCpy $1 ""
    loop:
      FileRead $0 $2
      IfErrors done
      StrLen $3 $2
      IntOp $3 $3 - 2
      StrCpy $4 $2 2 $3
      StrCmp $4 $\r$\n replace nonreplace
      replace:
          StrCpy $2 $2 -2
          StrCpy $2 $2\r\n
      nonreplace:
      StrCpy $1 $1$2
      Goto loop
    done:
    FileClose $0
    ;写入对应的配置文件,以便显示自定义页面
    WriteINIStr "$PLUGINSDIR\PageReadme.ini" "Field 1" "Text" "请认真阅读以下关于 $(^Name) 的重要说明。"
    WriteINIStr "$PLUGINSDIR\PageReadme.ini" "Field 2" "State" $1
    Pop $4
    Pop $3
    Pop $2
    Pop $1
    Pop $0
    !insertmacro MUI_HEADER_TEXT "重要说明" "在继续安装 $(^Name) 之前,请阅读下面的重要说明。"
    Push $R0
    Push $R1
    InstallOptions::initDialog /NOUNLOAD "$PLUGINSDIR\PageReadme.ini"
    Pop $R0
    GetDlgItem $R1 $R0 1201 ;1200 + Field number - 1
    SetCtlColors $R1 000000 FFFFFF ;改背景颜色为白色
    InstallOptions::show
    Pop $R1
    Pop $R0

FunctionEnd

引用PageReadme.ini的内容:

[Settings]
NumFields=2

[Field 1]
Type=label
Text=""
Left=0
Right=-1
Top=0
Bottom=10

[Field 2]
Type=text
Left=0
Right=-1
Top=16
Bottom=136
flags=MULTILINE|VSCROLL|READONLY
State=""