windows - 如何在不在 Inno Setup 中打开新窗口的情况下运行 CMD 命令

标签 windows cmd inno-setup windows-console

我正在使用 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/

相关文章:

c++ - 窗口消息 : Different between WM_CREATE and WM_NCCREATE?

c# - 在命令提示符 (cmd) 中执行 C#

java - Inno Setup编译目录

inno-setup - 使用 Inno Setup Studio 将主应用程序可执行文件安装到子文件夹

java - 有没有办法使用 Java/JavaFX 在 Windows 上自动检测相机 (USB)?

html - 没有Flash怎么知道swf文件的尺寸?

powershell - 如何从 PowerShell 运行批处理脚本?

windows - 文件名中的批处理命令日期和时间

inno-setup - Inno Setup - 显示 MsgBox 并单击 'OK' 返回上一页

c# - 如何在没有 WMI 的情况下获取在远程计算机上运行的进程的所有者