Installation 方法在DOS提示失败时在Innosetup中打印自定义退出代码

Installation 方法在DOS提示失败时在Innosetup中打印自定义退出代码,installation,inno-setup,exit-code,Installation,Inno Setup,Exit Code,我按照此步骤为安装程序(.exe文件)分配自定义exitcode 我这样做: Method 1 : [Code] procedure ExitProcess(exitCode:integer); external 'ExitProcess@kernel32.dll stdcall'; var1 : = 10 if (var1 <> 12) then //not equal to 12 begin msgBox(<some message,mbInformat

我按照此步骤为安装程序(.exe文件)分配自定义exitcode

我这样做:

Method 1 : 

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


 var1 : = 10
 if (var1 <> 12) then //not equal to 12
 begin
 msgBox(<some message,mbInformation,MB_OK)
 ExitProcess(9)
 end;



 I have DOS shell script like this : 
    @echo off
    my_exe.exe /verysilent
    if %errorlevel% == 9 (
     echo Failure reason given is %errorlevel%
     exit /b %errorlevel%

    )

The output is : Failure reason given is 9



Method 2 : 
方法1:
[守则]
过程ExitProcess(exitCode:integer);
外部的ExitProcess@kernel32.dllstdcall';
var1:=10
如果(var1 12),则//不等于12
开始

msgBox(在命令提示下?你是指什么?如果不是,请详细说明你想从哪里获取退出代码?exe将由windows进程运行(可能是启动脚本或后台进程)。如果出现错误,安装程序可能会失败(基于..的各种条件,例如满足条件X等)。为了测试它,我在命令提示符下运行它,希望知道是否满足任何此类条件。我故意生成了一个条件X,并希望通过在命令提示符下运行它来查看退出代码。我共享的链接,我使用它来分配退出代码,但在控制台上看不到它。那么,您需要执行我链接的帖子中的操作n我之前的评论。无论如何,这个问题与Inno安装程序没有任何关系,因为它是关于如何显示刚刚执行的应用程序退出代码的。好的,在你之前评论中链接的帖子中得到了它=>如果errorlevel 1,我们可以在Inno安装程序中分配这个退出代码1,这样它就可以被识别为“1”通过遵循我发布的链接。我们可以使用:ExitProcess(1)分配代码,并在dos提示符中使用errorlevel打印代码。感谢您的见解不要在您的情况下使用那种
ExitProcess
方式。这是非常残酷的方式。如果您想返回自定义退出代码,请使用
GetCustomSetupExitCode
事件(正如在另一个答案中所说的)。我不知怎么被你的最后一句话弄糊涂了。只要从命令提示符执行安装程序,安装程序完成后,通过在该命令提示符上写入例如
echo%errorlevel%
来获取退出代码。仅此而已。返回什么或执行什么并不重要,因为每个进程都返回退出代码(这就是为什么我说这与Inno设置无关)。
function GetCustomSetupExitCode: Integer;
begin
  result := 9
end;

 var1 : = 10
 if (var1 <> 12) then //not equal to 12
 begin
 msgBox(<some message,mbInformation,MB_OK)
 // ExitProcess(9)
  GetCustomSetupExitCode();
 end;