【发布时间】: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