【问题标题】:Is there a way to display a license dialog in a nsis installer even in silent mode?即使在静默模式下,有没有办法在 nsis 安装程序中显示许可证对话框?
【发布时间】:2011-08-22 18:18:36
【问题描述】:

我正在尝试为我正在使用的插件创建 NSIS 安装程序,但我希望它尽可能“免提”。具体来说,我不希望安装程序末尾的“单击此处关闭”;相反,我希望许可证出现,当他们点击“同意”时,它会安装并关闭。

我可以通过静默安装来做到这一点,只是许可证页面也不显示;除了许可页面,有没有办法让安装静默?

【问题讨论】:

    标签: installation nsis silent-installer


    【解决方案1】:

    在静默模式下,仅执行 .onInit 和 Sections,页面不执行,也无法执行。要做到这一点,您必须使用“自定义静音模式”来伪造它:

    !include LogicLib.nsh
    
    var mySilent
    
    Function .onInit
    ${If} ${Silent}
        StrCpy $mySilent 1
        SetAutoClose true ;Auto close InstFiles page
        SetSilent normal
    ${EndIf}
    FunctionEnd
    
    Function SkipInSilent
    ${IfThen} $mySilent <> 0 ${|} Abort ${|}
    FunctionEnd
    
    Page License
    Page Directory SkipInSilent
    Page Components SkipInSilent
    Page InstFiles
    
    Section
    SectionEnd
    

    【讨论】:

    • 我真的不想做“非静音”模式,我只是不想不显示 EULA;我希望它在所有情况下都以相同的方式运行。如果我使用您提供的示例,我如何让它在完成后不等待我单击“关闭”按钮? (InstFiles 通常会等待点击,不是吗?)
    • @Taxilian:去掉.onInit中的if签入,但保持SetAutoClose为真,SetSilent正常
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-13
    • 1970-01-01
    • 1970-01-01
    • 2023-03-10
    相关资源
    最近更新 更多