NSIS滚动许可证欢迎屏幕

时间:2012-04-30 18:58:38

标签: nsis

我有一个与滚动许可插件交互时遇到问题的安装程序。安装程序在没有插件的情况下运行良好,这就是插件包含的内容:

!

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

2 个答案:

答案 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