NSIS - 另一种调用静默模式页面回调函数的方法

NSIS - another way to call page call back functions for Silent Mode

在 NSIS 静默模式安装期间是否有其他方法调用页面自定义函数?

我每个页面都有一些函数,那么如何在静默模式下顺序调用这些函数?

我们有这样的东西,

!define MUI_PAGE_CUSTOMFUNCTION_PRE WelcomePagePre 
!define MUI_PAGE_CUSTOMFUNCTION_LEAVE WelcomePageLeave 
!define MUI_PAGE_CUSTOMFUNCTION_PRE DirectoryPagePre 
!define MUI_PAGE_CUSTOMFUNCTION_LEAVE DirectoryPageLeave 
!define MUI_PAGE_CUSTOMFUNCTION_PRE InstFilesPre 
!define MUI_PAGE_CUSTOMFUNCTION_SHOW InstFilesShow 
!define MUI_PAGE_CUSTOMFUNCTION_LEAVE InstFilesLeave 
!define MUI_CUSTOMFUNCTION_ABORT onUserAbort

有什么建议吗?

您不应该在页面功能中执行所需的操作。

如果您想支持静默安装,那么您应该将所有必需的 settings/variables 设置为它们在 .onInit 中的 default/preferred 值,并且应该在 [=12] 中执行实际安装步骤=].

如果您想忽略我的建议,那么您当然可以在第一部分的第一步中调用这些函数:

!include LogicLib.nsh
Section
${If} ${Silent}
Call WelcomePagePre 
Call ...
${EndIf}
SectionEnd

这要求您的页面功能实际上不需要 UI 存在(这不太可能)。在静默模式下,页面不会隐藏,它们根本不存在!