gpt4 book ai didi

nsis - NSIS安装程序-显示不同的许可证

转载 作者:行者123 更新时间:2023-12-04 13:29:46 24 4
gpt4 key购买 nike

我试图修改现有的NSIS安装脚本,以允许将不同的许可证文件呈现给用户,具体取决于它们是新用户还是现有用户。我在.onInit部分中已有用于检测现有安装的代码。

但是我在尝试使用NSIS提供的许可证屏幕时遇到了麻烦,例如

!InsertMacro MUI_PAGE_LICENSE Content\Licence.rtf

我希望能够在License和Licence2.rtf之间进行选择(尽管在最终版本中它们将被重命名为具有代表性的名称)。

我试过使用可选择的部分来调用嵌套!insertmacro的函数,但这不起作用,因为它必须位于脚本的基本级别。

我无法将参数更改为运行时可定义的,因为它需要在编译时知道文件的内容才能将其构建到安装程序中。

我知道我可以滚动从函数调用的自定义页面,然后这样做,但是我想知道是否有人使用NUI安装程序使用MUI_PAGE_LICENSE和不同的许可证。

谢谢

最佳答案

有两种方法可以给这只猫蒙皮:

  • 使用2个许可页面,并跳过其中之一oj​​it_rli
  • 在运行时手动加载许可证文件

  • 两页:
    !define MUI_PAGE_CUSTOMFUNCTION_PRE skip1
    !InsertMacro MUI_PAGE_LICENSE Content\Licence.rtf
    !define MUI_PAGE_CUSTOMFUNCTION_PRE skip2
    !InsertMacro MUI_PAGE_LICENSE Content\Licence2.rtf
    #You need two functions skip1 and skip2, they should call `abort` to skip based on some state you determine at run-time

    手动加载:

    有一个 plugin为您执行此操作(不确定是否支持RTF)

    我使用系统插件编写了一些执行此操作的代码,您可以找到 that on the nsis forum。要使用该代码,您需要将许可证文件包含在普通的 File命令中,然后提取您要$ pluginsdir的许可证文件,并将其加载到许可证页面的show callback函数中。

    关于nsis - NSIS安装程序-显示不同的许可证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2434344/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com