NSIS问题:当“ .onInstSuccess”功能未完成时,可以禁用“ MUI_PAGE_FINISH”页面中的“完成”按钮吗?

问题描述 投票:0回答:1

我使用NSIS打包我的应用程序,我需要在“ .onInstSuccess”函数中安装一些第三方软件,例如.Net重新分发,运行时引擎。但是安装完成后,将显示“ MUI_PAGE_FINISH”页面并开始调用“ .onInstSuccess”函数。如果在“ .onInstSuccess”功能仍在运行时,单击“ MUI_PAGE_FINISH”页面中的完成按钮,则将不能完全安装第三方软件。我可以在“ .onInstSuccess”功能完成后禁用完成按钮并重新启用它吗?enter image description here

nsis
1个回答
0
投票

您只应在Section中安装东西!完成InstFiles页面后,您的安装应该可以正常运行。安装可重新分发的库时,请确保使用ExecWait和正确的命令行参数(静默/等待等)。

.onInstSuccess在最后一页之后被调用,您实际上不应该与UI交互,也不执行需要很长时间的操作。

!include MUI2.nsh
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_PAGE_FINISH
!insertmacro MUI_LANGUAGE English

Function .onInstSuccess
GetDlgItem $0 $hWndParent 1
EnableWindow $0 0
Messagebox mb_ok "Performing a long operation here even though you are not supposed to..."
EnableWindow $0 1
FunctionEnd
© www.soinside.com 2019 - 2024. All rights reserved.