【问题标题】:Inno Setup : The Installed Program Never Launches after Setup CompletionInno Setup:安装完成后安装的程序永远不会启动
【发布时间】:2016-07-05 09:49:31
【问题描述】:

我的 Inno 设置脚本的 [Run] Section 有问题。

无论我选中还是取消选中出现在CurPageID = wpFinished 中的复选框,我的程序都不会启动。

我将它的默认值设置为Checked

我的脚本中属于这个的部分:

#define AppExec "hddbsfinder.exe"
#define AppName "HDD Bad Sectors Finder"

[Run]
Filename: "{app}\{#AppExec}"; Check: CheckLaunching; Description: "{cm:LaunchProgram,{#StringChange(AppName, '&', '&&')}}"; Flags: NoWait PostInstall

function CheckLaunching: Boolean;
begin
  Result := not LauncherCB.Checked;
end;

var    
LauncherCB: TNewCheckbox;

LauncherCB := TNewCheckBox.Create(WizardForm);
  with LauncherCB do
  begin
    Parent := WizardForm;
    Left := (225);
    Top := (245);
    Width := ScaleX(14);
    Height := ScaleY(15);
  end;

if CurPageID=wpSelectTasks then begin
LauncherCB.Hide;
LauncherCB.Checked := True;
end;

if CurPageID = wpFinished then begin
with WizardForm do begin
LauncherCB.Show;
end;
end;

即使我选中或取消选中 LauncherCB,我的程序也永远不会启动。

(默认值为Checked.

提前致谢。

【问题讨论】:

    标签: installation inno-setup


    【解决方案1】:

    postinstall 运行条目的 Check 参数用于评估是否显示复选框,而不是是否运行条目。

    你有两个选择:

    • 使用Exec 函数在NextButtonClick(wpFinished) 中实现自己的启动。

    • 使用标准运行清单框,只需将其移至您需要的位置即可。您可能需要将列表的 .Parent 更改为 WizardForm 以将其从“已完成”页面中删除。

    【讨论】:

    • 你没有告诉我们代码应该做什么。当复选框被选中时,程序是否应该运行?你为什么设置它检查?为什么您完全使用自定义复选框,而不是“完成”页面上的标准“运行”复选框?
    • 因为我的安装脚本不是标准的,它包含很多代码和皮肤、幻灯片和其他任务......Standard Run CheckBox 是在我的安装程序的完成页面中不可见,因为此页面被大图像覆盖。请告诉我此代码有什么问题。我希望此代码在选中该复选框时运行我的程序,如果未选中则不运行。而且我想将其默认值设置为Checked。这就是这段代码应该做的。
    • 谢谢您,但问题并没有消失,并且按照您所说的更改代码后问题已经逆转。现在问题是我是否选中或取消选中 CheckBox ,程序总是运行。我知道它的默认值为Checked。但是当我在wpFinished 页面中取消选中它并按“完成”时,程序仍然运行............我该如何解决这个...... .:(
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-09
    • 2012-09-19
    • 2015-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多