2010-08-27 21 views
3

我正在创建一个安装程序,它有多个要安装的组件(提供复选框以选择所需的组件)。 现在,假设用户没有选择任何选项,即使组件页面上的下一步按钮被激活。当我没有选择任何选项时,我想禁用下一个按钮。 有谁可以告诉我我该怎么做? 请帮帮我如何在安装时禁用NSIS中的按钮?

+0

任何消息?建议的解决方案帮助您解决问题? – 2010-08-30 07:54:15

+0

你的答案在这里http://stackoverflow.com/questions/8410859/disable-next-button-on-the-component-page-when-there-are-no-selected-component – nawfal 2012-07-24 06:59:00

回答

1

如果您使用标准的收集窗口作为MUI或XPUI,如果您使用Modern UI(MUI),那么您的问题很难解决,那么下一个代码可以帮助您编写所需的功能(在在XPUI情况下,这并不在所有的工作)

警告: 我做测试(只编译)下一个程序,因为我目前使用XPUI,我已经弃用我的安装程序中的MUI,此外,我已经提供没有逻辑重新启用OnChange_Service函数中的“下一步”按钮。

  1. 处理您的目标部分的情况下改变,我不知道,如果它的作品,但我建议使用NSD_OnChange过程(nsdialogs定义)

    !包括“nsdialogs.nsh”

    Function <...> 
    
    ${NSD_OnChange} <... name of the target section ...> OnChange_Service 
    
    FunctionEnd 
    
  2. 在事件处理函数放置代码以禁用按钮

    功能OnChange_Service

    VAR /全球Next按钮

    函数GetDlgItem $ Next按钮$ HWNDPARENT 1

    SectionGetFlags < ...目标部分的名字......> $ 0

    IntOp $ 0 $ 0 & $ {SECTION_OFF}

    StrCmp $ 0“1”DISABLENEXT GOTOENDONCHANGE

    DISABLENEXT:

    EnableWindow $ Next按钮0

    GOTOENDONCHANGE:

    functionend

无论我认为这是更好,如果你需要做的,使用自定义窗口对窗口控制状态进行一些操作。

让我知道,如果在您的项目

工程(如果您想使用布尔运算符在你的代码,然后使用LogicLib插件)

相关问题