我有一个与滚动许可插件交互时遇到问题的安装程序。安装程序在没有插件的情况下运行良好,这就是插件包含的内容:
!
include MUI.nsh
!define MUI_PAGE_CUSTOMFUNCTION_SHOW LicenseShow
!insertmacro MUI_PAGE_LICENSE "EULA.txt"
unction LicenseShow
ScrollLicense::Set /NOUNLOAD
FunctionEnd
Function .onGUIEnd
ScrollLicense::Unload
FunctionEnd
Section A
Section End
我遇到的问题就在这里。如果欢迎页面显示在许可证页面之前,它将无法进入下一个屏幕,因为它正在寻找滚动条和接受按钮。如果我删除了WELCOME页面,一切正常。有没有人有这个插件的经验?或者我如何让插件忽略MUI_PAGE_WELCOME?
!insertmacro MUI_PAGE_WELCOME <--- If I remove this Welcome page everything works great!
!insertmacro MUI_PAGE_LICENSE "eula.rtf"
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_PAGE_FINISH
!insertmacro MUI_UNPAGE_CONFIRM
!insertmacro MUI_UNPAGE_INSTFILES
答案 0 :(得分:1)
尝试移动线:
!define MUI_PAGE_CUSTOMFUNCTION_SHOW LicenseShow
在该行下方(更具体地说,在MUI_PAGE_LICENSE行的正上方):
!insertmacro MUI_PAGE_WELCOME
我使用了ScrollLicense插件提供的ExampleCheckBox.nsi,并在我拥有时重现了你的行为:
!define MUI_PAGE_CUSTOMFUNCTION_SHOW LicenseShow
!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_LICENSE ExampleCheckBox.nsi
当我将!define行移到MUI_PAGE_WELCOME之后,问题就消失了。
!insertmacro MUI_PAGE_WELCOME
!define MUI_PAGE_CUSTOMFUNCTION_SHOW LicenseShow
!insertmacro MUI_PAGE_LICENSE ExampleCheckBox.nsi
我不熟悉这个插件,但我怀疑有某种副作用会禁用下一个显示页面的“下一步”按钮......
答案 1 :(得分:1)
我认为您缺少的是示例如何适应其他MUI页面的“流程”。
!include MUI.nsh
;;this goes before the License page if you want it first.
!insertmacro MUI_PAGE_WELCOME
;;now add the example stuff
!define MUI_PAGE_CUSTOMFUNCTION_SHOW LicenseShow
!insertmacro MUI_PAGE_LICENSE "EULA.txt" ;;update for what file you want to include!
Function LicenseShow
ScrollLicense::Set /NOUNLOAD
FunctionEnd
Function .onGUIEnd
ScrollLicense::Unload
FunctionEnd
;;now continue with the rest of the pages
;;and we *don't* repeat the MUI_PAGE_LICENSE
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_PAGE_FINISH
!insertmacro MUI_UNPAGE_CONFIRM
!insertmacro MUI_UNPAGE_INSTFILES