NSIS安装程序许可证页面仅显示“关闭”和“取消”按钮

时间:2014-07-29 10:29:33

标签: windows user-interface macros installer nsis

我使用NSIS 2.46在Windows上构建了一个简单的安装程序。 这是许可页面的代码

# UI
!include "MUI2.nsh"
!define MUI_LICENSEPAGE_RADIOBUTTONS
!insertmacro MUI_PAGE_LICENSE "..\legal\disclaimer.txt"
!insertmacro MUI_LANGUAGE "English"

当我运行安装程序时,“许可证”页面会正确显示许可证文本,但只会禁用“#34;关闭"并启用"取消"按钮。一旦我将所选单选按钮更改为"我接受许可协议的条款","关闭"按钮已启用。如果单击它们,两个按钮都会导致安装程序退出。

如何更改脚本以获得"继续"如果许可被接受,按钮?

1 个答案:

答案 0 :(得分:0)

安装一个只有许可证页面的安装程序是没有意义的,如果你在它之后添加另一个页面,一切都应该正常运行:

!include "MUI2.nsh"
!define MUI_LICENSEPAGE_RADIOBUTTONS
!insertmacro MUI_PAGE_LICENSE "${__FILE__}"
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_LANGUAGE "English"

建议不要在没有InstFiles页面的情况下创建安装程序,但可以这样做:

!include "MUI2.nsh"
!define MUI_LICENSEPAGE_RADIOBUTTONS
!define MUI_PAGE_CUSTOMFUNCTION_SHOW SetNextBtnTextToInstall
!define MUI_PAGE_CUSTOMFUNCTION_LEAVE DoInstall
!insertmacro MUI_PAGE_LICENSE "${__FILE__}"
!insertmacro MUI_LANGUAGE "English"

Function SetNextBtnTextToInstall
GetDlgItem $0 $hwndparent 1
${NSD_SetText} $0 "$(^InstallBtn)"
FunctionEnd

Function DoInstall
MessageBox mb_ok "Install would take place here..."
SetErrorLevel 0
Quit
FunctionEnd