2012-01-14 16 views

risposta

9

Ci sono molti modi per ottenere un file da Internet in InnoSetup. È possibile utilizzare una libreria esterna come ad esempio InnoTools Downloader, scrivere la propria libreria o utilizzare uno degli oggetti COM di Windows. Nell'esempio seguente ho utilizzato l'oggetto COM WinHttpRequest per la ricezione di file.

La funzione DownloadFile in questo script restituisce True, quando le funzioni WinHTTP non sollevare alcuna eccezione, False altrimenti. Il contenuto della risposta della richiesta HTTP GET a un URL, specificato dal parametro AURL, viene quindi passato a un parametro dichiarato AResponse. Quando lo script non riesce la corsa su un'eccezione, AResponse parametro conterrà il messaggio di errore di eccezione:

[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

di TLama risposta [qui] (https://stackoverflow.com/a/22356942/2128797) si espande su questo. –

Problemi correlati