Inno Setup runhidden标志不适用于从批处理文件执行的控制台应用程序

时间:2018-03-08 09:13:30

标签: python batch-file cmd console-application inno-setup

我正在使用Inno Setup为使用PyInstaller创建的Django webapp安装程序。由于我的应用程序需要一个命令(命令行控制台应用程序)来运行服务器,我编写了一个批处理脚本来完成它。我的问题是我不想向最终用户显示控制台窗口,我想隐藏它。

Inno Setup .iss文件:

[Run]
Filename: "{app}\cookie_dot.bat"; Description: "Start server"; \
    Flags: nowait postinstall runhidden skipifsilent

但它仍然显示一个控制台窗口。

有关详细信息,请参阅我的批处理文件:

set PATH=%PATH%;C:\cookie_dot\wkhtmltopdf.exe
START "" "http://localhost:88/"
START "" "C:\cookie_dot\cookie_dot.exe" runserver localhost:88

1 个答案:

答案 0 :(得分:2)

runhidden隐藏批处理文件的控制台窗口(cmd.exe)。

但是你在另一个控制台窗口中启动了另一个控制台应用程序(cookie_dot.exe)(由于start命令)。

请注意,如果删除runhidden标志,您将获得两个控制台窗口(尽管第一个窗口只是短暂显示,而批处理文件正在运行)。

当您使用start标志时,您不需要对cookie_dot.exe使用nowait命令,因此Inno Setup不会介意(隐藏的)批处理文件保留只要cookie_dot.exe运行,就会运行:

set PATH=%PATH%;C:\cookie_dot\wkhtmltopdf.exe
START "" "http://localhost:88/"
"C:\cookie_dot\cookie_dot.exe" runserver localhost:88

如果没有start命令,cookie_dot.exe将继承批处理文件(cmd.exe)的隐藏控制台窗口。