最新消息:

NSIS 组件关联页面

nsis 永恒心锁 1418浏览 0评论

;IO.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=55

[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
!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 # 预先打包文件,方便安装加速释放

Var SHOW_PAGE # 是否显示自定义页面

Function .onInit
StrCpy $SHOW_PAGE "show" # 初始化设显示自定义页面, 如果你默认不打勾,请用 StrCpy $SHOW_PAGE ""
!insertmacro MUI_INSTALLOPTIONS_EXTRACT "io.ini" # 初始化页面
FunctionEnd

Function PageInitFunc
StrCmp $SHOW_PAGE "show" 0 +2 # 如果没有设置“show”则跳过下面的页面显示
!insertmacro MUI_INSTALLOPTIONS_DISPLAY "io.ini" # 显示页面
FunctionEnd

Function PageLeaveFunc
MessageBox MB_OK "自定义页面离开时操作,即点击下一步后触发的事件"
FunctionEnd

Section "数据库处理(自定义页面)" SEC1
# 所有数据库处理在这里写
MessageBox MB_OK "“数据库处理(自定义页面)”操作内容"
SectionEnd

Section "其他操作" SEC2
# 这里填写其他组件的操作
MessageBox MB_OK "“其他操作”操作内容"
SectionEnd

Function .onSelChange
Push $0
 SectionGetFlags ${SEC1} $0 # 检测 SEC1 的选择状态,1为已勾选该组件
 IntOp $0 $0 & ${SF_SELECTED} # 只过滤勾选的状态,Checkbox 的状态可能包含多位
 ;如果为 1 则设置显示自定义页面
 IntCmp $0 ${SF_SELECTED} showpage
 StrCpy $SHOW_PAGE "" # 设置不显示自定义页面
 Goto done
 showpage:
 StrCpy $SHOW_PAGE "show" # 设置显示自定义页面
 done:
Pop $0
FunctionEnd


/*---------------------------------------
上面是一个在 .onSelChange 中实现实时设定是否显示页面的方法。
下面的是一个在显示页面时才检测 Section 状态的方法。
 选择其中一种方式即可
-----------------------------------------*/

!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
免责声明:根据《计算机软件保护条例》第十七条规定“为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬。”您需知晓本站所有内容资源均来源于网络,仅供用户交流学习与研究使用,版权归属原版权方所有,版权争议与本站无关,用户本人下载后不能用作商业或非法用途,需在24个小时之内从您的电脑中彻底删除上述内容,否则后果均由用户承担责任;如果您访问和下载此文件,表示您同意只将此文件用于参考、学习而非其他用途,否则一切后果请您自行承担,如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。丨本站为个人博客非盈利性站点,所有软件信息均来自网络,所有资源仅供学习参考研究目的,并不贩卖软件,不存在任何商业目的及用途。丨本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权BY-NC-SA协议进行授权

转载请注明:永恒心锁-分享互联网 » NSIS 组件关联页面

发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址