【问题标题】:Inno Setup - Conditional downloads based on tasks or componentsInno Setup - 基于任务或组件的条件下载
【发布时间】:2011-12-12 02:08:13
【问题描述】:

我正在使用 Inno Setup 5.4.2 (a) 创建引导程序。现在我终于明白了,引导程序根据选择的组件下载组件所需的文件,然后安装它们。

但是,因为需要下载组件文件,它显示需要 0.1 mb 磁盘空间,我希望它在选择组件屏幕中显示要下载的文件的每个单独大小。

我正在使用来自http://www.sherlocksoftware.org 的 InnoTools 下载器,并且我已经设置了获取文件大小的函数:

[Code]
var
  setup: Double;
  drivers: Double;

function ITD_GetFileSize(const url: string; var size:cardinal): boolean;
procedure InitializeWizard();
begin
 itd_init;
 ITD_GetFileSize('http://www.domain.com/file1.exe',setup);
 ITD_GetFileSize('http://www.domain.com/drivers.exe',drivers);
end;

在选择组件后下载文件(当然)。我找到的翻译文件

ComponentSize1=%1 KB
ComponentSize2=%1 MB

我一直在寻找一种方法,让我可以正确设置文件大小,但似乎找不到。使用自定义消息,我可能可以设置一次,但它不适用于两个文件。我找不到任何使用这样的自定义消息并将变量传递给它的示例。有没有人可以帮我解决这个问题?

谢谢

【问题讨论】:

    标签: installation inno-setup inno-tools-downloader


    【解决方案1】:

    使用[Components] 条目的ExtraDiskSpaceRequired 参数来指定外部组件所需的任何空间。

    【讨论】:

    • 谢谢,这确实是“一个”解决方案,但它不会设置单个组件的大小,也不会以组件样式显示。所以不是我正在寻找的解决方案..我在一个变量中都有两个文件大小..必须有一些方法可以将这些与自定义消息或类似的东西一起使用
    • 你的意思是它不会设置单个组件的大小?我指出的参数特定于单个组件。通过创建自己的标签或替换现有标签,您可以在任何地方使用自定义消息。
    • 根据inno setup帮助: 说明: 通常,向导上显示的磁盘空间需求是通过将[Files]部分中所有文件的大小相加来计算的。如果您出于某种原因想要增加磁盘空间显示,请将 ExtraDiskSpaceRequired 设置为您希望添加到此图的字节数。 (1048576 字节 = 1 兆字节)这没有提到任何关于设置是每个组件或如何设置的内容。我想要完成的是,在“选择组件”屏幕中,它会在实际下载之前显示 2 个组件(在右侧)的大小。
    • sigh 有两个,我链接到的参数(是的,它是一个link to the help)是一个[Components] 条目,它可以满足您的需求。您正在阅读global value 的帮助,这不是您想要的。
    • 太棒了,行得通!我将尝试使其具有动态性,但至少目前这是一个很好的解决方案,因为它完全符合我的要求。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-27
    • 2016-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多