checkbox - NSIS有答案吗?
问题描述
您能告诉我如何在欢迎页面上执行“MUI_LICENSEPAGE_CHECKBOX”之类的操作吗?
当我单击复选框时,我会控制事件。
解决方案
从 MUI 文档:
页面自定义功能
...调用show函数,可用于自定义界面。
您可以在此回调中添加额外的控件。对于 MUIv2,这意味着 nsDialogs:
!include LogicLib.nsh
!include MUI2.nsh
!define MUI_PAGE_CUSTOMFUNCTION_SHOW WelcomeShow
!define MUI_PAGE_CUSTOMFUNCTION_LEAVE WelcomeLeave
!insertmacro MUI_PAGE_WELCOME
!define MUI_PAGE_CUSTOMFUNCTION_PRE LicensePre
!insertmacro MUI_PAGE_LICENSE "${__FILE__}"
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_PAGE_FINISH
!insertmacro MUI_LANGUAGE English
Var SkipLicensePage
Function WelcomeShow
${NSD_CreateCheckBox} 120u 150u 90% 12u "Accept license"
Pop $0
SetCtlColors $0 ${MUI_TEXTCOLOR} ${MUI_BGCOLOR}
System::Call 'USER32::SetWindowPos(p$0,p0,i0,i0,i0,i0,i0x33|0x40)' ; Force on top of the existing label
${NSD_SetState} $0 $SkipLicensePage
${NSD_OnClick} $0 WelcomeCheckClicked
FunctionEnd
Function WelcomeLeave
${NSD_GetState} $0 $SkipLicensePage
FunctionEnd
Function WelcomeCheckClicked
Pop $1 ; Throw away
MessageBox mb_ok "You clicked me!"
FunctionEnd
Function LicensePre
${IfThen} $SkipLicensePage <> 0 ${|} Abort ${|}
FunctionEnd
推荐阅读
- java - 当不再使用字段时,我是否每次都必须 .clear() HashSet 和 HashMap?
- bash - 在脚本中运行时如何让bash输出颜色?
- c# - 如何允许对 owin 管道中的索引进行匿名身份验证?
- autohotkey - AutoHotkey 和凭据
- javascript - 如何隐藏除我的位置之外的兴趣点谷歌地图?
- reactjs - 管理依赖状态
- javascript - vue-cli 是否为 IE11 转译/polyfill/shim 异步/等待?
- asp.net - 网站不会发布使用 openxml 生成的文件
- php - 使用 Doctrine Paginator 获取除计数之外的其他聚合值
- windows - 批处理的嵌套 IF 语句