NSIS 注释打包

; 以下脚本用以生成 study.exe 文件
; 它包含有授权协议
;
; 安装时若发现应用程序正在运行,安装程序会提示并替用户关闭应用程序
; 安装成功后会自动运行应用程序
;
; 启用新的 Modern UI 的宏指令语法,原先的部分指令将被禁止以防止重复
; 我会尽量展示如何基本指令的用法。当然宏指令也会与一些基本指令发生重
; 复定义的情况,不过 NSIS 照样能编译成功.
; 其中的一些路径、文件你可以根据需要更改

; 启用外部压缩工具(这里我们不用,原因看第 10 步)
;!define HAVE_UPX

; 若启用了外部压缩工具,这进行可执行文件头的压缩
!ifdef HAVE_UPX
; 用 UPX 压缩可执行文件头(用其他的相关工具也行)
!packhdr tmp.dat "E:UPX\upx --best tmp.dat"
!endif

; 编译选项

; 设置覆盖标记
SetOverwrite on
; 设置压缩选项
SetCompress auto
; 选择压缩方式
SetCompressor bzip2
; 设置数据块优化
SetDatablockOptimize on
; 设置数据写入时间
SetDateSave on

; 相关数据预设

; 软件的名字,后面的${NAME}调用这个名字
!define NAME "NSIS"
!define NAME_FULL "全方位掌握 NSIS 的使用"
!verbose 3
; 包含窗口消息定义文件
!include "${NSISDIR}\Examples\WinMessages.nsh"
; 包含新界面的宏指令文件
!include "${NSISDIR}\Examples\Modern UI\ModernUI.nsh"
; 包含标牌位图宏指令文件
!include "${NSISDIR}\Examples\branding.nsh"
!verbose 4
!define CURRENTPAGE $9
!define TEMP1 $R0
!define TEMP2 $R1

; 插入安装界面宏定义(这里我禁用了,启用也没问题。编译照样通过。后面我都定义过了)
;!insertmacro MUI_INTERFACE "modern2.exe" "adni18-installer-C-no48xp.ico" "adni18-uninstall-C-no48xp.ico" "modern.bmp" "smooth"

; 安装程序设置

; 输出文件
OutFile "F:\study.exe"
; 安装程序名称
Name /LANG=2052 "NSIS"
; 替换对话框样式
ChangeUI all "${NSISDIR}\Contrib\UIs\modern2.exe"
; 启用 WindowsXP 的视觉样式
XPstyle on
;设置字体
SetFont 宋体 9
; 标题名称
Caption /LANG=2052 "全方位掌握 NSIS 的使用"
; 标牌的内容
BrandingText /LANG=2052 /TRIMCENTER "Shao Hao"
; 安装程序图标
Icon "F:\12\QCDIcon.ico"
; 安装程序显示标题
WindowIcon on
; 添加标牌位图(放在顶部用 TOP 参数。后面接高度)
AddBrandingImage LEFT 105
; 设定渐变背景
BGGradient off
; 设置安静安装模式
;SilentInstall normal
; 设置安静卸载模式
;SilentUnInstall normal
; 执行 CRC 检查(最好用 on 打开。关闭是因为还要修改安装程序,看第 10 步)
CRCCheck off
; 加载相应的语言文件
LoadLanguageFile "${NSISDIR}\Contrib\Language files\SimpChinese.nlf"
; 替换各个对话框标题的文字
SubCaption /LANG=2052 0 "授权协议"
SubCaption /LANG=2052 1 "安装选项"
SubCaption /LANG=2052 2 "安装目录"
SubCaption /LANG=2052 3 "正在安装"
SubCaption /LANG=2052 4 "完成安装"
; 替换默认按钮的文字
MiscButtonText /LANG=2052 "< 上一步" "下一步 >" "取消" "关闭"
; 替换“安装”按钮的文字
;InstallButtonText /LANG=2052 "安装"
; 替换当文件无法被写入时的警告窗的文字
FileErrorText /LANG=2052 "无法写入文件$\r$\n$0$\r$\n请确认文件属性不是只读且未被使用中!"

; 默认的安装目录
InstallDir "$PROGRAMFILES\QCD 3"
; 如果可能的化从注册表中监测安装路径
InstallDirRegKey HKLM \
"Software\Microsoft\Windows\CurrentVersion\Uninstall\NSIS" \
"UninstallString"

; 授权协议页面
LicenseText /LANG=2052 "NSIS 是免费软件。安装前请先阅读以下协议条款" "我同意"
; 使用授权协议文本
LicenseData /LANG=2052 "F:\12\License.txt"
; 设置授权协议页面的背景色
;LicenseBkColor 000000

; 选择要按安装的组件
ComponentText /LANG=2052 "现在将安装 ${NAME_FULL}到您的计算机:" "请选择安装类型" "或选择您希望安装的组件"
InstType "完全安装(都在了)"
InstType "典型安装"
InstType /LANG=2052 /CUSTOMSTRING=自定义?
;InstType /LANG=2052 /NOCUSTOM
;InstType /COMPONENTSONLYONCUSTOM
CheckBitmap "${NSISDIR}\Contrib\Icons\modern.bmp"
; 替换显示磁盘空间信息的文字
SpaceTexts /LANG=2052 "所需空间:" "可用空间:"

; 提示用户输入目录的文本
; DirShow hide
; 替换显示选择安装目录的文字
DirText /LANG=2052 "请选择 ${NAME} 的安装路径:" "选择目录用以安装 ${NAME}:" "浏览..."
; 是否允许安装在根目录下
AllowRootDirInstall false

; 安装信息的颜色
;InstallColors 000000 FFFFFF
; 安装进度条显示方式
InstProgressFlags smooth colored
; 完成后自动关闭安装程序
AutoCloseWindow true
; 显示“显示详细细节”对话框
ShowInstDetails hide
; 替换“显示细节”按钮的文字
DetailsButtonText /LANG=2052 "显示细节"
; 替换“完成”按钮的文字
CompletedText /LANG=2052 "已完成"

; 卸载程序设置

; 替换卸载程序的文字
UninstallText /LANG=2052 "现在将从你的系统中卸载 ${NAME}:" "卸载目录:"
; 卸载程序图标
UninstallIcon "F:\12\UnQCDIcon.ico"
; 替换卸载程序标题的文字
UninstallCaption /LANG=2052 "卸载 ${NAME}"
; 替换卸载程序每页按钮的文字
UninstallSubCaption /LANG=2052 0 ":确认"
UninstallSubCaption /LANG=2052 1 ":正在删除文件"
UninstallSubCaption /LANG=2052 2 ":完成"
; 卸载程序显示方式
ShowUninstDetails hide
; 替换“卸载”按钮的文字
UninstallButtonText /LANG=2052 "卸载"

; 安装程序内容及其相关的回调函数

; 安装程序内容
Section /e "!主要程序(必须安装)" SecCore
SectionIn 1 2 RO
; 设置输出路径,每次使用都会改变
SetOutPath $INSTDIR
; 循环包含目录下全部内容
File /r "F:\12\1\*.*"
; 只包含一个文件
File "F:\12\gf.gif"
; 处理动态连接库文件
IfFileExists "$INSTDIR\1.dll" 0 NoFile1
; 取消组件注册
UnRegDll "$INSTDIR\1.dll"
Delete "$INSTDIR\1.dll"
NoFile1:
File "F:\12\1.dll"
; 注册组件
RegDLL "$INSTDIR\QCDIconMgr.dll"
; 写入软件注册键值
WriteRegStr HKLM "Software\NSIS\NSIS" "" "$INSTDIR"
; 为 Windows 卸载程序写入键值
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\NSIS" "DisplayName" "NSIS(只用于移除)"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\NSIS" "UninstallString" '"$INSTDIR\uninst.exe"'
; 写入生成卸载程序(可多次使用)
WriteUninstaller "$INSTDIR\uninst.exe"
SectionEnd

Section /e "扩展(可选)" SecUpdate
SectionIn 1
SetOutPath "$INSTDIR\Plugins"
File "F:\12\qcdplus\Plugins\2.dll"
File /r "F:\12\qcdplus\Plugins\3"
SectionEnd

SubSection /e "选项" SecOptions
Section /e "创建桌面图标" SecDesktopShortCut
SectionIn 1 2
SetOutPath "$INSTDIR\Plugins"
CreateShortCut "$DESKTOP\NSIS.lnk" "$INSTDIR\gf.gif"
WriteUninstaller "$INSTDIR\uninst.exe"
SectionEnd

Section /e "创建快速启动栏图标" SecQuickbarShortCut
SectionIn 1 2
SetOutPath "$INSTDIR\Plugins"
CreateShortCut "$QUICKLAUNCH\NSIS.lnk" "$INSTDIR\gf.gif"
WriteUninstaller "$INSTDIR\uninst.exe"
SectionEnd

Section /e "创建 NSIS 程序组" SecShortCutGroup
SectionIn 1 2
SetOutPath "$INSTDIR\Plugins"
CreateDirectory "$SMPROGRAMS\NSIS"
CreateShortCut "$SMPROGRAMS\QCD Player\gf.lnk" "$INSTDIR\gf.gif"
WriteUninstaller "$INSTDIR\uninst.exe"
SectionEnd
SubSectionEnd

Section "-Run"; 运行?
ExecWait '"$INSTDIR\2.exe" -p'
WriteINIStr "$INSTDIR\NSIS.ini" "2" "Language" "Chinese"
Exec "$INSTDIR\2.exe"
ExecShell open "$INSTDIR\汉化说明.htm"
SectionEnd

Section ""
;Invisible section to display the Finish header
!insertmacro MUI_FINISHHEADER SetHeader
SectionEnd

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值