2012-01-14 98 views

回答

9

如何在InnoSetup中從Internet獲取文件有很多種方法。您可以使用外部庫,例如InnoTools Downloader,編寫自己的庫或使用其中一個Windows COM對象。在以下示例中,我使用了文件接收的COM對象WinHttpRequest

此腳本中的DownloadFile函數返回True,當WinHTTP函數不引發任何異常時,否則返回False。然後將HTTP GET請求對URL的響應內容(由AURL參數指定)傳遞給聲明的AResponse參數。當腳本失敗上的異常運行,AResponse參數將包含異常錯誤消息:

[Code] 
function DownloadFile(const AURL: string; var AResponse: string): Boolean; 
var 
    WinHttpRequest: Variant; 
begin 
    Result := True; 
    try 
    WinHttpRequest := CreateOleObject('WinHttp.WinHttpRequest.5.1'); 
    WinHttpRequest.Open('GET', AURL, False); 
    WinHttpRequest.Send; 
    AResponse := WinHttpRequest.ResponseText; 
    except 
    Result := False; 
    AResponse := GetExceptionMessage; 
    end; 
end; 

procedure InitializeWizard; 
var 
    S: string; 
begin 
    if DownloadFile('http://www.example.com/versioninfo.txt', S) then 
    MsgBox(S, mbInformation, MB_OK) 
    else 
    MsgBox(S, mbError, MB_OK) 
end; 
+0

TLama的回答[這裏](https://stackoverflow.com/a/22356942/2128797)詳細闡述了這一點。 – 2017-06-23 07:29:58