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;
di TLama risposta [qui] (https://stackoverflow.com/a/22356942/2128797) si espande su questo. –