在Inno Setup中无需用户干预即可安装Microsoft Access数据库引擎先决条件

时间:2016-01-22 21:03:32

标签: installation inno-setup pascalscript

我将继续我在Inno Setup的工作,所以现在我有一个新的问题。 我试图在安装我的最终应用程序之前执行一些程序,为此我使用Exec函数。

当我尝试使用以下代码时:

[Files]
Source: "AccessDatabaseEngine_x64.exe"; DestDir: "{tmp}"; Flags: dontcopy noencryption
Source: "Database.accdb"; DestDir: "{app}"; Flags: ignoreversion

[Code]

function PrepareToInstall(var NeedsRestart: Boolean): String;
Var
  ResultCode: Integer;
begin
   ExtractTemporaryFile('AccessDatabaseEngine_x64.exe');
   if Exec(ExpandConstant('{tmp}\AccessDatabaseEngine_x64.exe'), 'quit', '', SW_HIDE, ewWaitUntilTerminated, ResultCode) then
   begin
      msgbox('True: {tmp}\AccessDatabaseEngine_x64.exe : ' + IntToStr(ResultCode), mbInformation, MB_OK);
   end
   else begin
      msgbox('False: {tmp}\AccessDatabaseEngine_x64.exe : ' + SysErrorMessage(ResultCode), mbInformation, MB_OK);      
   end;
end;

我收到此错误:

enter image description here

另一方面,如果我使用以下代码:

[Files]
Source: "AccessDatabaseEngine_x64.exe"; DestDir: "{tmp}"; Flags: dontcopy noencryption
Source: "Database.accdb"; DestDir: "{app}"; Flags: ignoreversion

[Code]

function PrepareToInstall(var NeedsRestart: Boolean): String;
Var
  ResultCode: Integer;
begin
   ExtractTemporaryFile('AccessDatabaseEngine_x64.exe');
   if Exec(ExpandConstant('{tmp}\AccessDatabaseEngine_x64.exe'), '', '', SW_HIDE, ewWaitUntilTerminated, ResultCode) then
   begin
      msgbox('True: {tmp}\AccessDatabaseEngine_x64.exe : ' + IntToStr(ResultCode), mbInformation, MB_OK);
   end
   else begin
      msgbox('False: {tmp}\AccessDatabaseEngine_x64.exe : ' + SysErrorMessage(ResultCode), mbInformation, MB_OK);      
   end;
end;

我得到了另一个文件的安装向导。有人喜欢这样:

enter image description here

我想自动安装其他程序,无需用户干预。

有可能吗?你能救我吗?

感谢提前!

2 个答案:

答案 0 :(得分:1)

使用情况屏幕显示/quiet,您使用quit

因此请使用/quiet,而不是quit

if Exec(ExpandConstant('{tmp}\AccessDatabaseEngine_x64.exe'), '/quiet', '', SW_HIDE, ewWaitUntilTerminated, ResultCode) then

答案 1 :(得分:1)

我不专心,正确的答案是在第一张照片中。 应该使用的词是:/ quiet ;不/不,不/退出。

作为支持(如果再次发生在其他人身上),我会留下下一个链接:

Description of the command-line switches that are supported by a software installation package, an update package, or a hotfix package that was created by using Microsoft Self-Extractor

同样很多人都会关注你。