在我分享软件的过程,慢慢想让自己的软件很独特,就开始接触了各种打包软件,开始自己用易语言自写打开软件,可是一切总不是那么完美,后来无意中发现了NSIS,堪称打包的极品。
打包效果预览:请自行下载查看,相信效果绝对不会让你后悔下载下来。
百度音乐
暴风影音
QQ浏览器
这里分享下界面自定义的基本教程:
/*---------------------------------------
自定义页面结合组件选择安装测试简单脚本。
-----------------------------------------*/
!include "MUI.nsh"
!include "Sections.nsh"
Name "自定义页面结合组件选择测试"
OutFile "Setup.exe"
!insertmacro MUI_PAGE_COMPONENTS
Page custom PageInitFunc PageLeaveFunc "" # 自定义页面
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_LANGUAGE "SimpChinese" # 设置安装界面语言
ShowInstDetails show # 显示安装进度信息
ReserveFile "io.ini" # 预先打包文件,方便安装加速释放 io.ini
!insertmacro MUI_RESERVEFILE_INSTALLOPTIONS # 预先打包文件,方便安装加速释放
Function .onInit
!insertmacro MUI_INSTALLOPTIONS_EXTRACT "io.ini" # 初始化页面
FunctionEnd
Function PageInitFunc
SectionGetFlags ${SEC1} $0 # 检测 SEC1 的选择状态,1为已勾选该组件
IntOp $0 $0 & ${SF_selectED} # 只过滤勾选的状态,Checkbox 的状态可能包含多位
IntCmp $0 ${SF_selectED} showpage hidepage hidepage
showpage:
!insertmacro MUI_INSTALLOPTIONS_DISPLAY "io.ini" # 显示页面
hidepage:
FunctionEnd
Function PageLeaveFunc
MessageBox MB_OK "自定义页面离开时操作,即点击下一步后触发的事件"
FunctionEnd
Section "数据库处理(自定义页面)" SEC1
# 所有数据库处理在这里写
MessageBox MB_OK "“数据库处理(自定义页面)”操作内容"
SectionEnd
Section "其他操作" SEC2
# 这里填写其他组件的操作
MessageBox MB_OK "“其他操作”操作内容"
SectionEnd
上文代码中ini
[Settings]
NumFields=7
[Field 1]
Type=label
Text=SQLServer 连接
Left=0
Right=-1
Top=0
Bottom=9
[Field 2]
Type=Text
Left=40
Right=163
Top=22
Bottom=35
[Field 3]
Type=Text
Left=39
Right=163
Top=43
Bottom=54
[Field 4]
Type=Password
Left=39
Right=163
Top=62
Bottom=75
[Field 5]
Type=Label
Text=密码:
Left=8
Right=36
Top=65
Bottom=75
[Field 6]
Type=Label
Text=账号:
Left=8
Right=38
Top=46
Bottom=56
[Field 7]
Type=Label
Text=服务器:
Left=6
Right=34
Top=27
Bottom=36