【问题标题】:Inno setup Exec() other 3rd party executable with command parametersInno setup Exec() 带有命令参数的其他 3rd 方可执行文件
【发布时间】:2023-03-20 23:52:01
【问题描述】:

我有以下脚本在我的应用程序的 inno 设置中执行 NSIS 使用命令 /s(静默安装)制作的第三个可执行文件。

[Files]
Source: "..\programB.exe"; DestDir: "{app}"; Flags: ignoreversion; AfterInstall: InstallProgramB


[Code]
procedure InstallProgramB;

var
ResultCode: Integer;

begin
  // Install programB and wait for it to terminate
  if not Exec(ExpandConstant('{app}\programB.exe'), '/s', '', SW_SHOWNORMAL,
     ewWaitUntilTerminated, ResultCode) then
   begin
    MsgBox('Failed to install programB!' + #13#10 +
      SysErrorMessage(ResultCode), mbError, MB_OK);
  end;
end;

问题是它弹出了不是“静默安装”的programB.exe向导。我看过this 并将命令行参数“/s”放置到第二个参数(如您所见),但 /s 似乎不起作用。 欢迎任何cmets

【问题讨论】:

  • 恕我直言应该可以工作。如果没有,可能需要指定其他参数(不确定)。您最终可以通过为ShowCmd 参数指定SW_HIDE 标志(而不是SW_SHOWNORMAL)来隐藏GUI 进程,但这只是隐藏了执行此设置的真正问题。如果从命令提示符处执行 if,此命令行是否有效?
  • @TLama 好点!!正确的命令应该是 /S,而不是 /s....
  • 哦,所以他们的参数是区分大小写的(他们甚至提到它在命令行上传递/S(区分大小写))。业余爱好者 :) 随意发布并接受您自己的解决方案答案。
  • 是的。这是。我犯了多大的错误。

标签: exec inno-setup nsis silent-installer


【解决方案1】:

查看NSIS Help

Passing /S on the command line (case sensitive))

所以,正确的参数应该是/S,而不是/s。区分大小写

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-16
    • 1970-01-01
    • 1970-01-01
    • 2011-04-06
    • 2015-04-15
    • 2011-03-24
    • 1970-01-01
    • 2010-12-10
    相关资源
    最近更新 更多