加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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

发布时间:2020-12-15 10:14:43 所属栏目:大数据 来源:网络整理
导读:到目前为止,这是我的代码的[Files]部分 [Files]Source: "other_installer.exe"; DestDir: "{app}"Source: "myprogram.exe"; DestDir: "{app}"Source: "data.dat"; DestDir: "{app}"Source: "otherdata.dat"; DestDir: "{app}" 我的程序依赖于另一个程序运行
到目前为止,这是我的代码的[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;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读