如何使 Inno Setup RunList 清单框透明?

How to make Inno Setup RunList checklist box transparent?

我的安装程序有一个带有图像的自定义完成页面。我为此提到了这个 解决方案。但问题在于完成页面的复选框,它出现在具有白色背景的完成页面图像的顶部。如果我删除了 postinstall 标志,那么它会自动启动我的应用程序。但我希望用户能够像复选框一样进行选择。那么有什么方法可以透明化图像顶部的复选框启动消息吗? TNewCheckBox 会帮忙吗?

[Run]
Filename: "app\My program.exe"; Description: "{cm:LaunchProgram}"; #
    Flags: nowait postinstall skipifsilent

在标准的 Inno Setup 中,我认为您无法使 WizardForm.RunList (TNewCheckListBox) 透明。但是由于简单的 TNewCheckListBox 是透明的,您可以将 WizardForm.RunList 替换为 TNewCheckListBox

[Code]
procedure RunCheckBoxClick(Sender: TObject);
begin
  WizardForm.RunList.Checked[0] := TNewCheckBox(Sender).Checked;
end;

procedure CurPageChanged(CurPageID: Integer);
var
  RunCheckBox: TNewCheckBox;
begin
  if CurPageID = wpFinished then
  begin
    if (not WizardForm.RunList.Visible) or
       (WizardForm.RunList.Items.Count < 1) then
    begin
      Log('No items to run');
    end
      else
    if WizardForm.RunList.Items.Count > 1 then
    begin
      Log('More than one item to run, keeping the standard non-transparent run list');
    end
      else
    begin
      Log('Replacing the one item in the run list with a simple transparent checkbox');
      RunCheckBox := TNewCheckBox.Create(WizardForm);
      RunCheckBox.Parent := WizardForm.RunList.Parent;
      RunCheckBox.Left := WizardForm.RunList.Left + ScaleX(4);
      RunCheckBox.Top := WizardForm.RunList.Top + ScaleY(4);
      RunCheckBox.Width := WizardForm.RunList.Width;
      RunCheckBox.Height := ScaleY(RunCheckBox.Height);
      RunCheckBox.Checked := WizardForm.RunList.Checked[0];
      RunCheckBox.Caption := WizardForm.RunList.ItemCaption[0];
      RunCheckBox.OnClick := @RunCheckBoxClick;
      WizardForm.RunList.Visible := False;
    end
  end; 
end;