首页 > 解决方案 > NSIS - 另一种为静默模式调用页面回调函数的方法

问题描述

在 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

有什么建议么?

标签: nsissilent-installer

解决方案


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

如果您想支持静默安装,那么您应该将所有必需的设置/变量设置为它们的默认/首选值,.onInit并且实际的安装步骤应该在Section.

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

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

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


推荐阅读