2011-12-12 170 views
4

我使用Inno Setup 5.4.2(a)创建引导程序。现在我终于明白了,所以基于选择的组件,引导程序会为组件下载所需的文件,然后安装它们。Inno Setup - 基于任务或组件的条件下载

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

我使用InnoTools下载从http://www.sherlocksoftware.org和我设置了功能获得文件大小:

[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 

我一直对我怎样才能让这个文件的大小设置正确,但似乎无法找到它寻找一个方法。使用自定义消息,我可能可以设置一次,但它不会对两个文件都有效。我找不到任何使用自定义消息来传递变量的例子。任何机构能帮助我解决这个问题吗?

感谢

回答

0

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

+0

谢谢,这确实是'a'解决方案,但它不会设置单个组件的大小,也不会在组件样式中显示它。所以不是真正的解决方案,我正在寻找..我有文件大小都在一个变量..必须有一些方法来使用这些自定义消息或类似的东西 – stevesrs

+0

你是什么意思,它不会设置个别组件的大小?我指出的参数特定于单个的组件。您可以通过创建自己的标签或替换现有标签来使用自定义消息。 – Deanna

+0

根据inno安装程序帮助: 描述: 通常,向导上显示的磁盘空间要求是通过在[文件]部分中添加所有文件的大小来计算的。如果您想出于任何原因增加磁盘空间显示,请将ExtraDiskSpaceRequired设置为您希望添加到此数字的字节数。 (1048576字节= 1兆字节) 这并没有提到关于设置每个组件或如何设置的任何内容。 我想要完成的是,在'选择组件'屏幕中,它显示了2个组件(在右侧)在实际下载之前的大小。 – stevesrs