Inno setup 如何在Inno Setup中设置执行文件返回代码的退出代码?

Inno setup 如何在Inno Setup中设置执行文件返回代码的退出代码?,inno-setup,exit-code,Inno Setup,Exit Code,我想从我的{app}{MyAppExeName}获取设置退出代码的返回代码(负值)(MyAppExeName将运行20~30秒) 我参考了许多示例代码,Exec可以得到结果代码 但是仍然不知道如何添加到设置退出代码的[code]部分(我不知道Pascal脚本) 下面是我的Inno安装脚本中的[Run]部分 [Run] Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppNam

我想从我的
{app}{MyAppExeName}
获取设置退出代码的返回代码(负值)(MyAppExeName将运行20~30秒)

我参考了许多示例代码,
Exec
可以得到结果代码 但是仍然不知道如何添加到设置退出代码的
[code]
部分(我不知道Pascal脚本)

下面是我的Inno安装脚本中的
[Run]
部分

[Run]
Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent
如何为我的目标更改
[Run]
[code]
部分

请帮助我并给我示例代码

谢谢

比尔,
要运行外部进程并检索其退出代码,请使用

要修改安装程序的退出代码,请实现

[代码]
变量
ExitCode:整数;
过程CurStepChanged(CurStep:TSetupStep);
开始
如果CurStep=ssPostInstall,则
开始
如果执行(
ExpandConstant('{app}\{MyAppExeName}'),'',SW#u SHOW,
EWWAIT未过滤,退出代码)然后
开始
日志(格式('命令完成,退出代码为%d',[ExitCode]);
结束
其他的
开始
日志('运行命令失败');
结束;
结束;
结束;
函数GetCustomSetupExitCode:整数;
开始
如果退出代码为0,则
开始
日志(格式('返回退出代码%d',[ExitCode]);
结束;
结果:=ExitCode;
结束;

请注意,Windows进程退出代码不能为负。退出代码是一个无符号32位整数

请参见和的
uExitCode
参数以及的
lpExitCode
参数如何分别属于
UINT
DWORD
类型

退出代码被解释为已签名只是一个常见的错误/误解

Inno安装程序遵循这种错误观念,在
GetCustomSetupExitCode
中使用有符号整数值