1

我想在 innosetup 中通过静默安装下载并安装 .net framework 4.5,使用以下条件我将检查 .netframework 4.5 是否可用,如果没有,我将使用 shellexec 从 Web 下载。在这里我附上了代码。

function Framework45IsNotInstalled: Boolean;
var
 bVer4x5: Boolean;
 bSuccess: Boolean;
 iInstalled: Cardinal;
 strVersion: String;
 iPos: Cardinal;
 ErrorCode: Integer;
begin
 Result := True;
 bVer4x5 := False;

 bSuccess := RegQueryDWordValue(HKLM, 'Software\Microsoft\NET Framework Setup\NDP\v4\Full', 'Install', iInstalled);
 if (1 = iInstalled) AND (True = bSuccess) then
  begin
    bSuccess := RegQueryStringValue(HKLM, 'Software\Microsoft\NET Framework Setup\NDP\v4\Full', 'Version', strVersion);
    if (True = bSuccess) then
     Begin
        iPos := Pos('4.5.', strVersion);
        if (0 < iPos) then bVer4x5 := True;

     End
  end;

 if (True = bVer4x5) then begin
    Result := False;

end;
ShellExec('', 'http://go.microsoft.com/fwlink/?LinkId=225702','{app}', '', SW_SHOWNORMAL, ewNoWait, ErrorCode);

end; 

现在我的疑问是,在开始下载时它会打开 Web 浏览器,并且它不会自动安装 .net 框架,用户需要手动安装,我希望在下载发生后自动安装 innosetup,安装应该以静默方式进行.我有什么想法来完成这项任务吗?

4

1 回答 1

1

ShellExec()用于告诉默认浏览器下载某些内容时,您无法控制它的作用。如果您希望之后能够运行它,您将需要使用集成下载器,例如InnoTools Downloader,或者只是要求用户运行安装。

于 2013-04-26T16:18:28.143 回答