但是这种方法需要定义一个变量,而且需要每次点击“组件”的时候都会触发事件,显得过于累赘。下面这个例子是在下一个页面的初始化时检测组件选择,从而达到是否显示自定义页面的效果。
引用来自 setup.nsi,2005-8-23 /*---------------------------------------
自定义页面结合组件选择安装测试简单脚本。
-----------------------------------------*/
!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} Intop # 检测 SEC1 的选择状态,1为已勾选该组件
${SF_selectED} IntCmp !insertmacro ${SF_selectED} & "io.ini" # 只过滤勾选的状态,CheckBox 的状态可能包含多位
MessageBox MB_OK showpage hIDepage hIDepage
showpage:
"数据库处理(自定义页面)" MUI_INSTALLOPTIONS_disPLAY MessageBox # 显示页面
hIDepage:
FunctionEnd
Function PageLeaveFunc
MB_OK "其他 *** 作" "自定义页面离开时 *** 作,即点击下一步后触发的事件"
FunctionEnd
Section MessageBox SEC1
# 所有数据库处理在这里写
MB_OK NumFIElds"“数据库处理(自定义页面)” *** 作内容"
SectionEnd
Section =SEC2
# 这里填写其他组件的 *** 作
Type="“其他 *** 作” *** 作内容"
SectionEnd
引用来自 io.ini,2005-8-23 [Settings]
Text=7
[FIEld 1]
left=label
Right=sqlServer 连接
top=0
Bottom=-1
Type=0
left=9
[FIEld 2]
Right=Text
top=40
Bottom=163
Type=22
left=35
[FIEld 3]
Right=Text
top=39
Bottom=163
Type=43
left=54
[FIEld 4]
Right=Password
top=39
Bottom=163
Type=62
Text=75
[FIEld 5]
left=Label
Right=密码:
top=8
Bottom=36
Type=65
Text=75
[FIEld 6]
left=Label
Right=账号:
top=8
Bottom=38
Type=46
Text=56
[FIEld 7]
left=Label
Right=服务器:
top=6
Bottom=34
3627
总结
以上是内存溢出为你收集整理的NSIS 自定义页面结合组件选择安装(二)全部内容,希望文章能够帮你解决NSIS 自定义页面结合组件选择安装(二)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)