在节定义之前使用节索引,或在NSIS中首先安装最后一节

在节定义之前使用节索引,或在NSIS中首先安装最后一节,nsis,Nsis,我正在编写一个NSIS安装程序脚本来安装一些网络打印机。我希望每台打印机都作为可选的部分安装,但我不希望多次重新启动后台打印程序。因此,我创建了一个隐藏部分,用于检查是否选中了每个打印机部分,如果选中,则包括注册表设置以创建该打印机的端口。然后重新启动后台打印程序。问题是我需要先完成这个隐藏部分,但我还需要使用打印机部分的部分索引 有人知道如何在定义节之前引用节索引吗?我想到的另一种方法是将隐藏的部分移到末尾,但接下来我需要一种方法来确保首先安装它。任何帮助或想法都将不胜感激 Section "

我正在编写一个NSIS安装程序脚本来安装一些网络打印机。我希望每台打印机都作为可选的
部分安装
,但我不希望多次重新启动后台打印程序。因此,我创建了一个隐藏部分,用于检查是否选中了每个打印机部分,如果选中,则包括注册表设置以创建该打印机的端口。然后重新启动后台打印程序。问题是我需要先完成这个隐藏部分,但我还需要使用打印机部分的部分索引

有人知道如何在定义节之前引用节索引吗?我想到的另一种方法是将隐藏的部分移到末尾,但接下来我需要一种方法来确保首先安装它。任何帮助或想法都将不胜感激

Section "-"
    ${IfThen} ${SectionIsSelected} ${Sec01} ${|} !include "10.0.0.8.nsh" ${|}
    ${IfThen} ${SectionIsSelected} ${Sec02} ${|} !include "10.0.0.11.nsh" ${|}
    nsExec::Exec 'net stop spooler'
    nsExec::Exec 'net start spooler'
SectionEnd

Section "My Printer" Sec01
    ExecWait 'rundll32 printui.dll,PrintUIEntry /if /b "My Printer" /f "$EXEDIR\oj8000\hpoj800z.inf" /r "10.0.0.8" /m "HP Officejet Pro 8000 A809 Series" /z'
SectionEnd

Section "Copier" Sec02
    ExecWait 'rundll32 printui.dll,PrintUIEntry /if /b "Copier" /f "$EXEDIR\copier\oemsetup.inf" /r "10.0.0.11" /m "RICOH Aficio MP C4000 PCL 6" /z'        
SectionEnd
Section -
...
call doSectionChecks
SectionEnd


Section "My Printer" Sec01
...
SectionEnd


Function doSectionChecks
... ${Sec01}
FunctionEnd