1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
| function DownloadArquivoByUrl(const AUrl, ADestino: String): Boolean;
const
BufferSize = 1024;
var
hSession, hURL: HInternet;
Buffer: array [1 .. BufferSize] of Byte;
BufferLen: DWORD;
f: File;
sAppName: string;
begin
Result := False;
sAppName := ExtractFileName(Application.ExeName);
hSession := InternetOpen(PChar(sAppName), INTERNET_OPEN_TYPE_PRECONFIG,
nil, nil, 0);
try
hURL := InternetOpenURL(hSession, PChar(AUrl), nil, 0, 0, 0);
try
if Assigned(hURL) then
begin
AssignFile(f, ADestino);
Rewrite(f, 1);
repeat
InternetReadFile(hURL, @Buffer, SizeOf(Buffer), BufferLen);
BlockWrite(f, Buffer, BufferLen)
until BufferLen = 0;
CloseFile(f);
Result := true;
end;
finally
InternetCloseHandle(hURL);
end
finally
InternetCloseHandle(hSession);
end
end; |