我花了无数个小时,但我仍然不知道如何解决:
我尝试检测特定的现有用户文件,以便自动选择[types]部分确定的安装选项。
我的程序必须安装不同的文件,无论程序A,B或C是否安装在用户的文件系统上。目前,我有一个包含所有可安装组件的[Components]列表和一个包含相应条目的[Types]列表。用户可以(必须)首先选择他已安装的程序(A,B或C),然后选择他的版本。我正在寻找的是如何根据已安装的程序(A,B或C)自动显示特定可安装组件(版本)的解决方案。
Tl;博士:
已安装程序A - > A的可安装版本会自动显示(如果安装了B或C,则相同)
(希望我能说清楚,因为我不是母语为英语的人)
答案 0 :(得分:2)
[Components]
Name: A; Description: Support for Program A; Check: HasProgramA
Name: B; Description: Support for Program B; Check: HasProgramB
Name: B\b1; Description: Version 1
Name: B\b2; Description: Version 2
Name: B\b3; Description: Version 3 Special Edition; Check: HasProgramBSpecial
[Code]
function HasProgramA(): Boolean;
begin
Result := (some calculations that return True if program A is installed);
// eg. use the RegQuery* functions to read registry values
end;
// repeat for the other Check functions
只有安装了相应的程序时,才会显示组件,根据您提出的任何标准来确定组件。