如何使用NSIS在静默安装程序中调用自定义页面功能?

时间:2013-03-27 09:08:49

标签: nsis

    page custom test

    # Installer sections
    Section -Main SEC0000
        SetOutPath $INSTDIR
        MessageBox MB_OK "done"
        ;............
        ;.........
    SectionEnd

    Function test
        MessageBox MB_OK "ok"
        //Do some stuff
    FunctionEnd

    # Installer functions
    Function .onInit
   !ifdef IsSilent
         SetSilent silent
   !endif
         InitPluginsDir
    FunctionEnd

在上面的代码中,运行静默和非静默模式。如果以非静默模式[用户交互]运行它,则会调用自定义页面功能并显示msg框。但是如果以静默模式[无用户交互]运行它,则不会调用自定义页面,也不会显示msg框。此外,完成 msg框以静音模式显示。

有没有理由在静默安装程序中调用自定义页面?

如何在静默安装程序模式下调用自定义页面?

1 个答案:

答案 0 :(得分:3)

  

是否有任何原因导致自定义页面未在静默安装程序中调用?

按设计:静默安装程序是静默的,即它不显示GUI,因此不显示页面(既不是标准也不是自定义),也不会触发页面回调。 MessageBox是特殊的,因为它映射到标准函数并由您触发。

  

如何在静默安装程序模式下调用自定义页面?

你做不到。如果您在自定义页面中有一些处理,请将其放在函数中:

  • 将从自定义页面调用
  • 将从.onInit或类似

    的部分明确调用
    IfSilent 0 +2
    Call YourProcessingFunc
    

如果您基于用户在自定义页面中给出的某些选项进行处理,则需要在静默模式下使用某些默认值。或者实现通过命令行传递的参数。