You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

InnoSetup求助:如何通过复选框实现安装末尾可选删除文件

InnoSetup 安装末尾添加复选框并实现条件删除文件示例

以下是完整的脚本示例,实现安装流程末尾添加复选框,仅勾选时删除指定文件的功能:

[Setup]
AppName=MyApp
AppVersion=1.0
DefaultDirName={autopf}\MyApp
OutputDir=Output

[Files]
Source: "MyApp.exe"; DestDir: "{app}"
; 可在此添加其他需安装的文件

[Code]
var
  DeleteFileCheckbox: TNewCheckBox;

procedure InitializeWizard;
begin
  // 在安装完成页创建复选框
  DeleteFileCheckbox := TNewCheckBox.Create(WizardForm);
  with DeleteFileCheckbox do
  begin
    Parent := WizardForm.FinishedPage;
    Left := WizardForm.FinishedLabel.Left;
    Top := WizardForm.FinishedLabel.Top + WizardForm.FinishedLabel.Height + 16;
    Width := WizardForm.FinishedLabel.Width;
    Caption := '删除临时文件 C:\Temp\MyTempFile.txt';
    Checked := False; // 默认不勾选
  end;
end;

procedure CurStepChanged(CurStep: TSetupStep);
var
  TempFilePath: String;
begin
  // 安装完成后(ssPostInstall阶段)检查复选框状态
  if CurStep = ssPostInstall then
  begin
    TempFilePath := 'C:\Temp\MyTempFile.txt';
    if DeleteFileCheckbox.Checked and FileExists(TempFilePath) then
    begin
      // 执行删除操作
      if DeleteFile(TempFilePath) then
        Log('成功删除文件: ' + TempFilePath)
      else
        Log('删除文件失败: ' + TempFilePath);
    end;
  end;
end;

关键部分说明

  • InitializeWizard 过程:向导初始化时,在完成页(FinishedPage)创建并布局复选框,设置显示文本与默认未勾选状态。
  • CurStepChanged 过程:监听安装步骤变化,进入ssPostInstall(安装后阶段)时,判断复选框是否勾选。若勾选且目标文件存在,则执行删除操作并记录日志。
  • 可按需修改:
    • 复选框的Caption文本,明确提示用户要删除的文件信息
    • TempFilePath变量值,指定实际要删除的文件路径
    • 复选框的Left/Top参数,适配你的界面布局

内容的提问来源于stack exchange,提问作者coderiffic

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 16:12:05