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

如何使用NSIS在静默安装程序中调用自定义页面函数?,nsis,Nsis,在上面的代码中,以静默模式和非静默模式两种方式运行。如果在非静默模式[用户交互]下运行,则会调用自定义页面函数并显示消息框。但是,如果您在静默模式[无用户交互]下运行它,则不会调用自定义页面,也不会显示任何消息框。另外,donemsg框在静默模式下显示 在静默安装程序中没有调用自定义页面有什么原因吗 如何在静默安装程序模式下调用自定义页面 是否有任何原因自定义页面没有调用静默安装程序 这是出于设计:静默安装程序是静默的,即它不显示GUI,因此不会显示任何页面(既不是标准的也不是自定义的),也不会

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

在静默安装程序中没有调用自定义页面有什么原因吗

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

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

这是出于设计:静默安装程序是静默的,即它不显示GUI,因此不会显示任何页面(既不是标准的也不是自定义的),也不会触发任何页面回调<代码>消息框是特殊的,因为它映射到标准函数,由您触发

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

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

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

        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
    

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

谢谢seki。请参阅我收到的问题的最后一行,运行静默模式时完成。它位于标准页面下。它是如何显示的?但我只在自定义页面中包含了一些功能。如何在静默安装程序中执行这些页面?@ILLA:有一些方法可以执行处理,但不显示页面,请参阅我的编辑
IfSilent 0 +2
Call YourProcessingFunc