2012-01-14 4 views

ответ

9

Существует множество способов получить файл из Интернета в InnoSetup. Вы можете использовать внешнюю библиотеку, например, 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) расширяется на это. –