Inno Setup:安装其他安装程序并运行它,然后再继续安装

前端之家收集整理的这篇文章主要介绍了Inno Setup:安装其他安装程序并运行它,然后再继续安装前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
到目前为止,这是我的代码的[Files]部分
[Files]
Source: "other_installer.exe"; DestDir: "{app}"
Source: "myprogram.exe"; DestDir: "{app}"
Source: "data.dat"; DestDir: "{app}"
Source: "otherdata.dat"; DestDir: "{app}"

我的程序依赖于另一个程序运行。我在我的安装程序中包含了该程序的安装程序(“other_installer.exe”)。我想要做的是在复制之后立即启动此安装程序,然后再继续执行“myprogram.exe”和其他操作。

我已经搜索并在Inno安装帮助中找到了BeforeInstall的文档,但没有运行另一个应用程序的例子。我相信应该是这样的:

[Files]
Source: "other_installer.exe"; DestDir: "{app}"
Source: "myprogram.exe"; DestDir: "{app}"; BeforeInstall: // RUN OTHER_INSTALLER.EXE //
Source: "data.dat"; DestDir: "{app}"
Source: "otherdata.dat"; DestDir: "{app}"

解决方法

更好的方式可能是 AfterInstall参数。以下脚本将在处理了OtherInstaller.exe文件条目之后立即执行RunOtherInstaller功能。它试图执行刚安装的OtherInstaller.exe文件,如果失败,它会向用户报告错误消息。请注意,您不能中断该功能的安装,所以这样做不太安全:
[Setup]
AppName=My Program
AppVersion=1.5
DefaultDirName={pf}\My Program

[Files]
Source: "OtherInstaller.exe"; DestDir: "{app}"; AfterInstall: RunOtherInstaller
Source: "OtherFile.dll"; DestDir: "{app}"

[Code]
procedure RunOtherInstaller;
var
  ResultCode: Integer;
begin
  if not Exec(ExpandConstant('{app}\OtherInstaller.exe'),'',SW_SHOWNORMAL,ewWaitUntilTerminated,ResultCode)
  then
    MsgBox('Other installer Failed to run!' + #13#10 +
      SysErrorMessage(ResultCode),mbError,MB_OK);
end;

猜你在找的Delphi相关文章