2
    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

在上面的代码中,以静默和非静默模式两种方式运行。如果在非静默模式下运行[用户交互],则会调用自定义页面函数并显示消息框。但是如果你在静默模式下运行它[无用户交互],则不会调用自定义页面并且不会显示任何消息框。此外,完成消息框以静音模式显示。

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

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

4

1 回答 1

5

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

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

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

你不能。如果自定义页面有一些处理,放在一个函数中:

  • 将从自定义页面调用
  • 将从 the.onInit或 类似的部分显式调用

    IfSilent 0 +2
    Call YourProcessingFunc
    

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

于 2013-03-27T10:01:57.100 回答