2013-04-26 65 views
1

我想下載並安裝.net框架4.5在innosetup中進行靜默安裝,使用下面的條件我將檢查.netframework 4.5是否可用,如果沒有,我將使用shellexec從web下載。在這裏我附上了代碼。如何更改InnoSetup中的下載路徑?

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 Framework,用戶需要手動安裝,我想innosetup自動安裝下載正在發生後,安裝應該以無聲的方式發生。我能得到任何想法來完成這項任務?

+1

嘗試採用例如用於.NET設置下載的['InnoTools Downloader'](http://www.sherlocksoftware.org/page.php?id=50)。 – TLama 2013-04-26 13:11:48

回答

1

當使用ShellExec()來告訴默認瀏覽器下載一些東西時,你無法控制它的功能。 如果你想能夠在以後運行它,你將需要使用一個集成的下載器,如InnoTools Downloader,或者只是要求用戶運行它的安裝。