【问题标题】:NSIS auto accept dialog in silent modeNSIS 在静默模式下自动接受对话框
【发布时间】:2013-02-15 01:41:23
【问题描述】:

我有一个带有自定义对话框的 nsis 安装程序,其中有一个接受按钮,但是当我在静默模式下运行它时,它不接受该对话框。如何让它自动点击接受?

【问题讨论】:

    标签: nsis


    【解决方案1】:
    • 如果您的对话框是标准的MessageBox,只需将/SD button_id_to_use 参数添加到MessageBox instruction 以告诉NSIS 在静默模式下使用什么选项:

      MessageBox MB_YESNO "Accept?" /SD IDNO IDNO Skipped
      
    • 如果您的对话框是自定义页面,问题是在静默模式下,根本不涉及任何页面(甚至隐藏),也不会触发页面回调。您需要检查IfSilent 并调用由Accept 按钮触发的逻辑,与.onInit 或部分分开。

    【讨论】:

    • 你没有显示你的代码...你需要添加/SD和按钮的ID来选择静音模式,你需要把它放在消息和按钮列表
    • 但它不是消息框而是对话框
    • 抱歉,我错过了它是自定义对话框而不是消息框的事实。请参阅我编辑的答案。
    【解决方案2】:
    IfSilent Accepted
    MessageBox MB_YESNO "Accept?" IDNO Skipped
    Accepted:
    // some code when accepted
    
    Skipped:
    

    【讨论】:

    • 无需使用IfSilent 测试模拟:MessageBox/SD 参数专用于静音模式
    • 对,但这仅适用于标准消息框命令 - 不适用于自定义消息框插件
    • 是的,但在您的示例中,您展示了如何跳过标准 MessageBox :)
    • 真正的,纯粹的懒惰。无论如何,如果您仍然考虑使用该自定义消息框插件,您可能不应该:forums.winamp.com/showpost.php?p=2784163&postcount=6
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-05-06
    • 1970-01-01
    • 1970-01-01
    • 2010-11-24
    • 1970-01-01
    • 2020-04-26
    • 1970-01-01
    相关资源
    最近更新 更多