我正在使用 Inno Setup 安装程序来设置安装程序文件,它可以调用我刚刚通过其脚本安装的 .exe,并在安装后立即启动它,使用以下命令:
[Run]
Filename: "{cmd}"; Description: "{cm:LaunchProgram,3mtxmail}"; \
Flags: nowait postinstall skipifsilent runascurrentuser; \
Parameters: "/b /k "" ""{app}\my.exe"" -c ""{app}\default.conf"" "" "
当 my.exe
运行时,它不需要任何接口(interface),应该只监听特定端口上的任何流量,并将该流量信息写入日志文件。
但是,当我执行安装程序并启动程序时,它仍然会弹出一个新的控制台窗口,我认为 /b
应该阻止它。我希望看不到这个新的控制台窗口,实际上在屏幕上看不到任何东西。
来自 https://technet.microsoft.com/en-us/library/bb491005.aspx , /b
应该是表示不为该命令打开新窗口的标志。
正确的语法是什么?
最佳答案
看起来您不需要 cmd.exe
来做任何事情。而是直接运行您的应用程序:
[Run]
Filename: "{app}\my.exe"; Parameters: "-c ""{app}\default.conf""" \
Description: "{cm:LaunchProgram,3mtxmail}"; \
Flags: nowait postinstall skipifsilent runascurrentuser;
虽然如果您的应用程序是控制台应用程序,它会打开自己的控制台。为防止这种情况,请添加 runhidden
flag .
实际上,您甚至可以使用 runhidden
标志来隐藏 cmd.exe
控制台窗口。但是,如果您不需要 cmd.exe
,则不应使用它。
关于windows - 如何在不在 Inno Setup 中打开新窗口的情况下运行 CMD 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44039720/