; Script generated by the HM NIS Edit Script Wizard.

; HM NIS Edit Wizard helper defines
!define PRODUCT_NAME "xxx系统"
!define PRODUCT_VERSION "1.0"
!define PRODUCT_PUBLISHER "xxx有限公司"
!define PRODUCT_WEB_SITE "http://www.baidu.com"
!define PRODUCT_DIR_REGKEY "Software\Microsoft\Windows\CurrentVersion\App Paths\运行.exe"
!define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
!define PRODUCT_UNINST_ROOT_KEY "HKLM" ; MUI 1.67 compatible ------
!include "MUI.nsh" ; MUI Settings
!define MUI_ABORTWARNING
!define MUI_ICON "build\logo.ico"
!define MUI_UNICON "build\logo.ico" ; Welcome page
!insertmacro MUI_PAGE_WELCOME
; Directory page
!insertmacro MUI_PAGE_DIRECTORY
; Instfiles page
!insertmacro MUI_PAGE_INSTFILES
; Finish page
!define MUI_FINISHPAGE_RUN "$INSTDIR\运行.exe"
!define MUI_FINISHPAGE_SHOWREADME
!define MUI_FINISHPAGE_SHOWREADME_Function AutoBoot
!define MUI_FINISHPAGE_SHOWREADME_TEXT "开机自动启动"
!insertmacro MUI_PAGE_FINISH ; Uninstaller pages
!insertmacro MUI_UNPAGE_INSTFILES ; Language files
!insertmacro MUI_LANGUAGE "SimpChinese" ; MUI end ------ Name "${PRODUCT_NAME} ${PRODUCT_VERSION}"
OutFile "xxx系统V${PRODUCT_VERSION}-build安装包.exe"
InstallDir "$PROGRAMFILES\xxx系统"
InstallDirRegKey HKLM "${PRODUCT_DIR_REGKEY}" ""
DirText "安装程序将安装 $(^Name) 在下列文件夹。$\r$\n$\r$\n要安装在不同文件夹,单击 [浏览] 并选择其他文件夹。"
ShowInstDetails show
ShowUnInstDetails show Section "MainSection" SEC01
SetOutPath "$INSTDIR"
SetOverwrite ifnewer
File /r "build\*"
;不覆盖下面的文件
SetOverwrite off
File "build\数据.db"
File "build\配置1.json"
File "build\配置2.json"
File "build\配置3.json"
File "build\配置4.xml"
SetOverwrite ifnewer CreateDirectory "$SMPROGRAMS\xxx系统"
CreateShortCut "$SMPROGRAMS\xxx系统\xxx系统.lnk" "$INSTDIR\运行.exe" "" "$INSTDIR\logo.ico"
CreateShortCut "$DESKTOP\xxx系统.lnk" "$INSTDIR\运行.exe" "" "$INSTDIR\logo.ico"
SectionEnd Section -.NET
Call GetNetFrameworkVersion
Pop $R1
${If} $R1 < '4.5.2'
Call DownloadNetFramework4
${EndIf}
SectionEnd Section -AdditionalIcons
WriteIniStr "$INSTDIR\xxx有限公司.url" "InternetShortcut" "URL" "${PRODUCT_WEB_SITE}"
CreateShortCut "$SMPROGRAMS\xxx系统\官网.lnk" "$INSTDIR\xxx有限公司.url"
CreateShortCut "$SMPROGRAMS\xxx系统\卸载.lnk" "$INSTDIR\uninst.exe"
SectionEnd Section -Post
WriteUninstaller "$INSTDIR\uninst.exe"
WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "" "$INSTDIR\运行.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\运行.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}"
SectionEnd Function un.onUninstSuccess
HideWindow
MessageBox MB_ICONINFORMATION|MB_OK "$(^Name) 已成功地从你的计算机移除。"
FunctionEnd Function un.onInit
MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "你确实要完全移除 $(^Name) ,其及所有的组件?移除后所有数据将被删除!" IDYES +2
Abort
FunctionEnd Section Uninstall
Delete "$INSTDIR\*" Delete "$SMPROGRAMS\xxx系统\Uninstall.lnk"
Delete "$SMPROGRAMS\xxx系统\Website.lnk"
Delete "$DESKTOP\xxx系统.lnk"
Delete "$SMPROGRAMS\xxx系统\xxx系统.lnk" RMDir "$SMPROGRAMS\xxx系统"
RMDir /r /REBOOTOK "$INSTDIR" DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
DeleteRegKey HKLM "${PRODUCT_DIR_REGKEY}"
DeleteRegKey HKCU "Software\Microsoft\Windows\CurrentVersion\Run"
SetAutoClose true
SectionEnd ;获取.Net Framework版本,支持
Function GetNetFrameworkVersion
Push $1
Push $0
ReadRegDWORD $0 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full" "Install"
ReadRegDWORD $1 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full" "Version"
StrCmp $0 1 KnowNetFrameworkVersion +1
ReadRegDWORD $0 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5" "Install"
ReadRegDWORD $1 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5" "Version"
StrCmp $0 1 KnowNetFrameworkVersion +1
ReadRegDWORD $0 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.0\Setup" "InstallSuccess"
ReadRegDWORD $1 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.0\Setup" "Version"
StrCmp $0 1 KnowNetFrameworkVersion +1
ReadRegDWORD $0 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v2.0.50727" "Install"
ReadRegDWORD $1 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v2.0.50727" "Version"
StrCmp $1 "" +1 +2
StrCpy $1 "2.0.50727.832"
StrCmp $0 1 KnowNetFrameworkVersion +1
ReadRegDWORD $0 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v1.1.4322" "Install"
ReadRegDWORD $1 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v1.1.4322" "Version"
StrCmp $1 "" +1 +2
StrCpy $1 "1.1.4322.573"
StrCmp $0 1 KnowNetFrameworkVersion +1
ReadRegDWORD $0 HKLM "SOFTWARE\Microsoft\.NETFramework\policy\v1.0" "Install"
ReadRegDWORD $1 HKLM "SOFTWARE\Microsoft\.NETFramework\policy\v1.0" "Version"
StrCmp $1 "" +1 +2
StrCpy $1 "1.0.3705.0"
StrCmp $0 1 KnowNetFrameworkVersion +1
StrCpy $1 "NO_NetFramework"
KnowNetFrameworkVersion:
Pop $0
Exch $1
FunctionEnd Function DownloadNetFramework4
;下载 .NET Framework 4.0
; NSISdl::download /TRANSLATE2 '正在下载 运行环境组件%s' '正在连接...' '(剩余 1 秒)' '(剩余 1 分钟)' '(剩余 1 小时)' '(剩余 %u 秒)' '(剩余 %u 分钟)' '(剩余 %u 小时)' '已完成:%skB(%d%%) 大小:%skB 速度:%u.%01ukB/s' /TIMEOUT=7500 /NOIEPROXY 'http://192.168.100.70/net4.5.2.exe' '$TEMP\dotNetFx45_Full_setup.exe'
; Pop $R0
; StrCmp $R0 "success" 0 +2 SetDetailsPrint textonly
DetailPrint "正在安装 运行环境,这可能需要1到几分钟时间,请稍候..."
SetDetailsPrint listonly
ExecWait '$INSTDIR\net4.5.2.exe /q /norestart /ChainingPackage FullX64Bootstrapper' $R1
; Delete "$TEMP\dotNetFx45_Full_setup.exe"
FunctionEnd Function AutoBoot
WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Run" "xxx系统" "$INSTDIR\运行.exe"
FunctionEnd

NSIS打包脚本模板的更多相关文章

  1. NSIS 打包脚本基础

    简介 NSIS(Nullsoft Scriptable Install System)是一个开源的 Windows 系统下安装程序制作程序.它提供了安装.卸载.系统设置.文件解压缩等功能.这如其名字所 ...

  2. InnoSetup汉化版打包工具下载-附带脚本模板

    InnoSetup汉化版打包工具下载地址: https://www.90pan.com/b1907264 脚本模板 ; 脚本用 Inno Setup 脚本向导 生成.; 查阅文档获取创建 INNO S ...

  3. 修改Unity脚本模板的方法合计

    作为一个习惯于偷懒的程序,重复性的无聊内容是最让人无奈的事,就比如我们创建Unity脚本之后,需要手动调整生成的新脚本的格式.编码.内容:如果我们要编写的是编辑器或者服务器端脚本,需要修改的内容就会更 ...

  4. NSIS打包软件使用

    NSIS打包软件使用 最近做的一个调用远程桌面的小应用需要打个安装包,并且在安装的时候需要添加注册表,我之前使用的都是"Advanced Installer"来打包应用程序的,这个 ...

  5. 《转》Unity3D研究院编辑器之创建Lua脚本模板

    Unity里能创建 c#脚本模板,但是如果我想创建Lua脚本模板怎么办呢?拓展一下编辑器吧. 设置一下Lua脚本的模板地址 :  Assets/Editor/Lua/Template/lua.lua ...

  6. Tips12: 私人定制 专属的Unity3D 脚本模板

    在使用U3D的过程中,新建一个C#脚本,它包含着空的Start()和Update()函数.  根据个人习惯的不同,可能有些人有着自己的脚本风格,每次进去都增删改很麻烦,这里介绍一个更改新建脚本模板的方 ...

  7. Unity3d自定义脚本模板

    这是一个小技巧,打开Unity安装目录,如: C:\Program Files (x86)\Unity\Editor\Data\Resources\ScriptTemplates /* * * Tit ...

  8. 我使用的Bash脚本模板

    在Linux环境下(包括在相应的模拟环境,如Windows中的Cygwin)工作的时间久了,就会慢慢积累出一些自己写的小脚本程序,用于加速日常的操作与工作流程,如自动挂载与卸载U盘,映射网络驱动器,数 ...

  9. xcode8.3 shell 自动打包脚本 记录

    题记 xcode升级8.3后发现之前所用的xcode自动打包基本无法使用,因此在网上零碎找到些资料,将之前的脚本简化.此次脚本是基于xcode证书配置进行打包(之前是指定描述文件.相对繁琐).因此代码 ...

  10. 如何修改新建脚本模板-ScriptTemplates(Unity3D开发之十五)

    猴子原创,欢迎转载.转载请注明: 转载自Cocos2Der-CSDN,谢谢! 原文地址: http://blog.csdn.net/cocos2der/article/details/44957631 ...

随机推荐

  1. 基于Netty,从零开发IM(四):编码实践篇(系统优化)

    本文由作者"大白菜"分享,有较多修订和改动.注意:本系列是给IM初学者的文章,IM老油条们还望海涵,勿喷! 1.引言 前两篇<编码实践篇(单聊功能)>.<编码实践 ...

  2. o3 发布了,摔碎了码农的饭碗

    大家好,我是汤师爷~ 在 2024 年底,OpenAI 发布了最新推理模型 o3.o3模型相当炸裂,在世界级编程比赛中拿下第 175 名,打败 99.9% 的参赛者.AI 写代码都赶上顶级程序员了,程 ...

  3. Windows安全加固(一)

    目录: 1.在win ser2016中如何管理重命名administrator,禁用GUEST 2.禁用GUEST账户 3.系统不显示上次登录的账户名. 4.清理系统无效账户. 5.按用户类型分配账号 ...

  4. 2022 年万圣节 Github 彩蛋

    记录每年 Github 万圣节彩蛋,也记录有来项目成长历程. 2022 万圣节彩蛋 2021 万圣节彩蛋 2020 万圣节彩蛋

  5. .NetCore Docker test

    Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源. Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布到任何流行的 ...

  6. MySQL 开启配置binlog以及通过binlog恢复数据

    -------------------------------------------------------------------------------------- # 查看binlog的列表 ...

  7. Java中的值类型

    在打算了解Java的时候,根据C#的经验,了解一下Java中有哪一些值类型,如何判断某个类型为值类型还是引用类型是一件值得做的事情. 在C#中,值类型存放在栈中,不需要垃圾回收,引用类型存放在堆中,需 ...

  8. Kotlin:【List集合】安全索引取值函数、可变列表、mutator函数、removeIf函数、list集合遍历、解构(过滤不需要的元素赋值)

  9. 本地部署DeepSeek-R1并使用自定义的知识库AnythingLLM

    一.基础信息 1.概述 以下是私有化部署方案的优势: 性能卓越:提供媲美商业模型的对话交互体验 环境隔离:完全离线运行,杜绝数据外泄风险 数据可控:完全掌控数据资产,符合合规要求 2.硬件环境 CPU ...

  10. Amoro提供grafana的metrics介绍

    一.指标内容 +| Metric Name | Type | Tags | Description | +|---------------------------------------------- ...