如何在Inno Setup中设置退出代码?

时间:2010-01-06 13:16:23

标签: inno-setup exit-code

我想为我的安装设置退出代码,这样我就知道为什么安装被中止了。我正在使用Inno Setup。

2 个答案:

答案 0 :(得分:12)

从Inno设置帮助文档(from the article "Setup Exit Codes"):

  

从Inno Setup 3.0.3开始,安装程序可能会返回以下退出代码之一:

     

0 安装程序已成功运行至完成。

     

1 安装程序无法初始化。

     

2 在实际安装开始之前,用户在向导中单击了“取消”,或者在“这将安装...”开头的消息框中选择“否”。

     

3 准备进入下一个安装阶段时发生致命错误(例如,从显示安装前向导页面到实际安装过程)。除非在最不寻常的情况下,例如内存或Windows资源不足,否则不应发生这种情况。

     

4 在实际安装过程中发生了致命错误。

     

注意:导致显示Abort-Retry-Ignore框的错误不是致命错误。如果用户在此类消息框中选择“中止”,则将返回退出代码5

     

5 用户在实际安装过程中单击了“取消”,或者在“中止 - 重试 - 忽略”框中选择“中止”。

     

6 调试器强制终止安装过程(在IDE中使用了“运行”|“终止”)。

您可以通过确认退出代码为0来轻松检查设置是否成功运行。此外:

  

任何非零退出代码表示安装程序未运行完成。

要更具体地回答您的问题,您可以通过观察退出代码25来确定安装已取消。

如果您希望在Inno返回0时返回自定义退出代码,您可以定义以下事件函数:

function GetCustomSetupExitCode: Integer;

从帮助文档(from the article "Pascal Scripting: Event Functions"):

  

function GetCustomSetupExitCode: Integer;

     

返回非零数字以指示安装程序返回自定义退出代码。仅当安装程序成功运行至完成且退出代码为0时才会调用此函数。

答案 1 :(得分:7)

使用:

[Code]
procedure ExitProcess(exitCode:integer);
  external 'ExitProcess@kernel32.dll stdcall';

procedure SomeEventHere();
begin
  if someerror then begin
    ExitProcess(9); //Your custom exit code
  end;
end;