Installation 组件页面离开功能:始终表示已选中组件
在我的MUI组件页面上,当用户试图离开该页面时,我调用一个函数。在该函数中,我尝试查看是否至少检查了1个组件。如果没有,则显示MessageBox并中止(停止继续下一页) 我的问题:我的函数总是说即使组件未被检查,也会进行检查。我做错了什么 出于某种原因,程序总是认为第一个组件已选中,而不是Installation 组件页面离开功能:始终表示已选中组件,installation,nsis,Installation,Nsis,在我的MUI组件页面上,当用户试图离开该页面时,我调用一个函数。在该函数中,我尝试查看是否至少检查了1个组件。如果没有,则显示MessageBox并中止(停止继续下一页) 我的问题:我的函数总是说即使组件未被检查,也会进行检查。我做错了什么 出于某种原因,程序总是认为第一个组件已选中,而不是 !include nsdialogs.nsh !include MUI2.nsh !define MUI_PAGE_CUSTOMFUNCTION_SHOW compshow !define MUI_PA
!include nsdialogs.nsh
!include MUI2.nsh
!define MUI_PAGE_CUSTOMFUNCTION_SHOW compshow
!define MUI_PAGE_CUSTOMFUNCTION_LEAVE compleave
!insertmacro MUI_PAGE_COMPONENTS
!insertmacro MUI_LANGUAGE "English"
OutFile "test.exe"
Function compshow
FunctionEnd
Function compleave
!insertmacro SectionFlagIsSet ${section1} ${SF_SELECTED} +1 +2
MessageBox MB_OK "Component Selected"
MessageBox MB_OK "Component NOT Selected"
FunctionEnd
Section "Dummy1"
SectionEnd
Section "Dummy2"
SectionEnd
你的问题是相对跳跃。您应该使用一些标签,因为宏可能包含许多命令,而不仅仅是一个命令 另外,请认为执行将在第一次跳转后继续。别忘了跳过测试的另一个分支 修改后的
completave
回调按预期工作:
函数完成
!insertmacro SectionFlagIsSet${section1}${SF_SELECTED}SELECTED未_SELECTED
挑选出来的:
MessageBox MB_OK“已选择组件”
转到终点
未选择:
MessageBox MB_OK“未选择组件”
完:
功能端