2

我的安装程序在与滚动许可证插件交互时遇到问题。安装程序在没有插件的情况下工作得很好,这就是插件让我包含的内容:

!

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
4

2 回答 2

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

我不熟悉这个插件,但我怀疑有某种副作用会禁用下一个显示页面的下一步按钮......

于 2012-04-30T19:22:28.927 回答
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
于 2012-04-30T19:23:40.237 回答