我想为我的安装设置退出代码,这样我就知道为什么安装被中止了。我正在使用Inno Setup。
答案 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
来轻松检查设置是否成功运行。此外:
任何非零退出代码表示安装程序未运行完成。
要更具体地回答您的问题,您可以通过观察退出代码2
或5
来确定安装已取消。
如果您希望在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;