Inno Setup:在[运行]部分中执行Pascal功能

汉尼斯·施密德(Hannes Schmid)

在安装结束时,我需要运行Pascal函数来更新飞行模拟器.cfg文件(.ini在Inno Setup中称为file)。Pascal函数存在于其[Code]部分中,并且可以正常运行。我想在该[Run]节中运行此Pascal函数,StatusMsg以告诉用户发生了什么事。

[Run]
Filename: {code:FsxEditSceneryFile|Add#<scenerySpec>}; StatusMsg: "Add scenery to FSX";
; <scenerySpec> is just a place holder of the actual scenery specification!

除了Inno Setup强制我string将Pascal函数的a用作返回值外,所有其他功能均按预期工作。但是,该Filename语句要求使用Booleanas作为返回值来指定执行是成功(True)还是失败(False)。这种类型的不匹配会在Filename语句执行结束时产生一个错误消息框,说明

CreateProcess失败;代码87。参数错误。

有什么建议可以解决吗?我知道存在可以使用的事件函数,例如,CurStepChanged()但是我发现该StatusMsg机制很好地告诉用户安装完成了什么。

马丁·普里克里(Martin Prikryl)

您正在滥用Filename参数解析来执行一些代码。参数值解析后未记录。这使您的方法不可靠。显示时,您不知道该值已解析StatusMsg而且,无论如何该值都必须解析为可执行路径。并且Inno Setup将尝试执行它(因此发生错误)。您可能不想要的东西。不要那样做。


如您所建议,改为使用CurStepChanged您可以通过访问来显示Pascal代码中的状态消息WizardForm.StatusLabel

procedure CurStepChanged(CurStep: TSetupStep);
begin
  if CurStep = ssPostInstall then
  begin
    WizardForm.StatusLabel.Caption := 'Installing something...';
    { Install something }
  end;
end;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Inno Setup Pascal脚本来搜索正在运行的进程

来自分类Dev

如何覆盖Inno Setup中的功能?

来自分类Dev

Inno Setup语法-OR,AND

来自分类Dev

Inno Setup Abs(Integer)功能

来自分类Dev

Inno Setup [Code]部分变量为[Registry]

来自分类Dev

inno setup中的“ Not in a loop”错误

来自分类Dev

Inno Setup:选择组件的功能

来自分类Dev

在Inno Setup中取消安装

来自分类Dev

Inno Setup中的TTreeView

来自分类Dev

Inno Setup中的条件DisableProgramGroupPage

来自分类Dev

Inno Setup:如何在“运行”部分操作进度栏?

来自分类Dev

Inno Setup部分[运行]有条件

来自分类Dev

根据Windows版本在Inno Setup Run部分执行不同的命令

来自分类Dev

Inno Setup遍历Pascal代码中的[Files]部分

来自分类Dev

Dirs部分的Inno Setup Check功能

来自分类Dev

根据Windows版本在Inno Setup Run部分中执行不同的命令块

来自分类Dev

在Inno Setup中调试不工作的Pascal检查条件(DirExists)

来自分类Dev

在Inno Setup Pascal脚本中,在运行时评估预处理器中的数据集合

来自分类Dev

在Inno Setup中安装部分后,如何移动任务部分?

来自分类Dev

Inno Setup Pascal脚本中的多行注释

来自分类Dev

在Inno Setup Pascal脚本中销毁对象

来自分类Dev

在Inno Setup中记录TWindowsVersion

来自分类Dev

Inno Setup,[运行]中参数中的空格

来自分类Dev

在Inno Setup Pascal脚本中声明变量

来自分类Dev

将参数(/ verysilent)传递给从Inno Setup中的Pascal代码执行的应用程序(子安装程序)

来自分类Dev

Inno Setup执行功能无法完全正常运行

来自分类Dev

Inno Setup 中的动态密码

来自分类Dev

在 Inno Setup 的运行部分之后创建桌面链接图标

来自分类Dev

在运行条目描述中使用标准的 Inno Setup 消息

Related 相关文章

热门标签

归档