【问题标题】:Console output after Inno VERYSILENT optionInno VERYSILENT 选项后的控制台输出
【发布时间】:2013-01-09 17:58:31
【问题描述】:

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

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

我已经尝试了通常的帕斯卡代码:

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

感谢您提供任何帮助,如果需要进一步澄清问题,请询问。

【问题讨论】:

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


    【解决方案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 ...
    

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

    【讨论】:

    • 我一定会试试这个,但我想我明白你在解释什么。我想知道为什么常规语法不起作用。谢谢
    • start 语法中的一个小问题:如果文件名可能包含空格,则应该引用它,但如果这样做,则必须包含一个额外的虚拟参数。我已经编辑了上面的答案以显示一个示例。
    猜你喜欢
    • 2021-04-10
    • 1970-01-01
    • 2020-10-11
    • 2021-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-23
    • 2011-10-10
    相关资源
    最近更新 更多