Inno VERYSILENT选项后的控制台输出

时间:2012-12-28 11:35:11

标签: command-line-interface inno-setup pascal silent-installer

我有一个Inno Setup可执行文件来安装程序。我已确保使用How to detect whether the setup runs in very silent mode?来使用代码来检测是否存在静音开关并在安装时应用了VerySilent开关。我现在面临的问题是我需要在控制台上输出某种类型的输出,同时安装:BUSY ......并且在完成安装后,控制台上的输出为:DONE!

这是必需的,因为我必须使用/ VERYSILENT开关并使用它,我们不知道安装是否完成,如果完成则是否成功。此外,还有一个消息框,因为安装是远程进行的。只是一个控制台输出,如果可能的话也是一个日志文件。

我尝试过常用的pascal代码:

begin
  WriteLn('Hello World!');
end. 

任何帮助都表示赞赏,如果需要进一步澄清问题,请询问。

1 个答案:

答案 0 :(得分:1)

安装程序创建为GUI应用程序。因此,Windows在启动时会自动断开控制台与它们的连接,并且绝对没有办法写入它。

您必须通过运行安装程序的任何操作来处理它 - 例如。在批处理脚本中,例如:

@echo off
echo BUSY...
start /wait path\to\setup-foo /verysilent /norestart /suppressmsgboxes
echo DONE (%errorlevel%)

(您可能还想使用/LOG参数。)

如果设置的路径可能包含空格,则必须使用稍微怪异的语法:

start /wait "" "another path\to\setup-foo" /verysilent /norestart ...

(空双引号是必需的,必须出现在可执行路径之前。)