gpt4 book ai didi

delphi - 如何在 VCL 表单应用程序中设置 ExitCode

转载 作者:行者123 更新时间:2023-12-03 14:38:15 26 4
gpt4 key购买 nike

我无法让 ExitCode 适用于 VCL 表单应用程序。这是我的测试应用程序。它是通过 Delphi 2007 IDE 中的"file"/“新建”菜单创建的。唯一的变化是我在末尾添加了行 ExitCode := 42;

program Test;

uses
Forms,
Unit27 in 'Unit27.pas' {Form27};

{$R *.res}

begin
Application.Initialize;
Application.MainFormOnTaskbar := True;
Application.CreateForm(TForm27, Form27);
Application.Run;

ExitCode := 42;
end.

现在,当我从命令行运行它时,%ERRORLEVEL% 未设置:

>.\Test.exe

>echo %ERRORLEVEL%
0

我预计 %ERRORLEVEL% 中的值是 42,但它没有被更新。

我在控制台应用程序中尝试了相同的实验,效果很好。为什么它不适用于我的 GUI 应用程序?

最佳答案

您设置退出代码的方法很好。这是你的测试出了问题。

shell 不会等待 GUI 应用程序完成运行就提示输入下一个命令。因此,错误级别已经确定。您是在显示命令提示符时检查该值,而不是在运行 echo 命令时检查该值。

在批处理文件或命令脚本中运行程序会修改命令解释器的行为,使其在运行下一个命令之前等待每个命令完成,即使对于标记为使用 GUI 子系统而不是控制台子系统的程序也是如此。这就是为什么从批处理文件中正确报告错误级别的原因 - 您运行的进程在命令解释器获取退出代码之前已完成。在不使用命令脚本的情况下,您可以尝试使用 the start command 启动程序。并向其传递 /wait 选项。不过,我不确定它会转发它启动的进程的退出代码。

关于delphi - 如何在 VCL 表单应用程序中设置 ExitCode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15127707/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com