2012-01-14 13 views

답변

9

인터넷에서 InnoSetup으로 파일을 가져 오는 방법에는 여러 가지가 있습니다. 예를 들어 InnoTools Downloader과 같은 외부 라이브러리를 사용하거나, 자체 라이브러리를 작성하거나, Windows COM 객체 중 하나를 사용할 수 있습니다. 다음 예제에서는 파일 수신에 WinHttpRequest COM 개체를 사용했습니다.

이 스크립트의 DownloadFile 함수는 WinHTTP 함수가 예외를 발생시키지 않으면 True를 반환하고, 그렇지 않으면 False를 반환합니다. AURL 매개 변수로 지정된 URL에 대한 HTTP GET 요청의 응답 내용은 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)이시 확장 : 스크립트가 예외에 실행에 실패하면, AResponse 매개 변수는 예외 오류 메시지가 포함됩니다. –

관련 문제