在 Inno Setup 中提示输入外部文件位置

问题描述 投票:0回答:1

我目前使用

[Files] Flags: external
将用户数据导入到我的安装中,该安装正在运行。

我现在需要在安装过程中提示输入特定的外部文件。

使用案例:
我们安装需要许可文件的软件(不要与许可协议混淆)。我想提示用户提供许可证文件。一旦他们提供了文件,它将被复制到

DestDir

我正在寻找类似

[Files] Flags: PromptForFile
的东西或实现相同目标的例程。有人已经解决这个问题了吗?

inno-setup
1个回答
6
投票

使用

CreateInputFilePage
功能 创建自定义向导页面以提示用户输入许可证文件。

然后,使用脚本常量将所选路径用作

[Files]
部分中的源路径。

[Files]
Source: "{code:GetLicensePath}"; DestDir: "{app}"; Flags: external
[Code]

var
  LicenseFilePage: TInputFileWizardPage;

procedure InitializeWizard();
begin
  LicenseFilePage :=
    CreateInputFilePage(
      wpSelectDir,
      'Select License File Location',
      'Where is your license file located?',
      'Select where License file is located, then click Next.');

  LicenseFilePage.Add(
    'Location of license file:',         
    'License files|*.lic|All files|*.*', 
    '.lic');                             
end;

function GetLicensePath(Param: string): string;
begin
  Result := LicenseFilePage.Values[0];
end;

License file page


TODO:当用户未选择任何许可证文件时,您需要以某种方式处理这种情况。要么不允许继续(使用

NextButtonClick
),要么跳过文件安装(使用
Check
参数
)。

© www.soinside.com 2019 - 2024. All rights reserved.