gpt4 book ai didi

nsis - 如何检查 NSIS 中是否选择了组件?

转载 作者:行者123 更新时间:2023-12-04 23:24:33 30 4
gpt4 key购买 nike

如果选择了某个组件,我想提示用户提供额外信息,但我不确定如何检查是否选择了给定的组件。好像http://nsis.sourceforge.net/Docs/Chapter4.html#4.9.13.2可能以某种方式相关,但我的印象是一个部分是一组组件......

鉴于安德斯的帮助,我有这个工作:

!include MUI.nsh
!include nsDialogs.nsh
!include LogicLib.nsh
!include sections.nsh

Name A
InstProgressFlags smooth colored
LicenseBkColor /windows
OutFile A.exe
InstallDir $PROGRAMFILES\A

Var Dialog

Section "A" SEC_A
SectionEnd
Section "B" SEC_B
SectionEnd

!insertmacro MUI_PAGE_COMPONENTS
Page custom getA setA # {{{
!insertmacro MUI_PAGE_DIRECTORY # {{{ install
Function getA

${Unless} ${SectionIsSelected} ${SEC_A}
Abort
${EndUnless}

nsDialogs::Create 1018
Pop $Dialog

${If} $Dialog == error
Abort
${EndIf}

${NSD_CreateLabel} 0 0 100% 12u "Test"

nsDialogs::Show
FunctionEnd
Function setA
MessageBox MB_OK "clicked?"
FunctionEnd
# }}}
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_UNPAGE_CONFIRM
!insertmacro MUI_UNPAGE_INSTFILES

最佳答案

每个部分(带有名称)都显示为组件页面上的复选框。 (节组可用于形成树布局,但只有实际节包含可执行代码)
sections.nsh包含方便的辅助宏来操作设置,如果您使用 logiclib.nsh你可以做${If} ${SectionIsSelected} ${MYSECTION} ...

关于nsis - 如何检查 NSIS 中是否选择了组件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15010336/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com