我想在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;
现在我的疑问是,在开始下载时打开网页浏览器,它不会自动安装.net框架,用户需要手动安装,我希望innosetup在下载发生后自动安装,安装应该发生以沉默的方式。我能想到完成这项任务吗?
答案 0 :(得分:1)
使用ShellExec()
告诉默认浏览器下载内容时,您无法控制它的作用。
如果您希望以后能够运行它,则需要使用InnoTools Downloader之类的集成下载程序,或者只是要求用户在安装时运行它。