Вопрос Загрузка файлов с внешнего источника средствами Inno Setup + WinApi

Le9ent

Новичок
Доброго времени суток, подскажите есть ли пример загрузки файлов с внешнего источника средствами Inno Setup + WinApi.

Есть пример загрузки текстового файла лицензии:

Код:
function LicenseDownload(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;

function InstallLicenseDownload(): Boolean;
begin
  LicenseDownload('http://www.myUrl.com/bla-bla-bla', License)
end;
Я так понимаю загруженный текстовый файл помещался в буфер с наименованием "License"
Как аналогично можно загрузить файл (например архив) помещая загруженный файл либо во временную директорию {tmp} либо в каталог установки {app} для дальнейшей обработки.
 

Krinkels

Он где то тут
Администратор
Ну я все таки рекомендовал бы через плагин, удобнее. Ну а ежели все таки хочешь обойтись без всего, то смотри, в License у тебя будет скачанный файл( тот же самый архив ), тебе его просто нужно от туда сохранить на диск
 

Le9ent

Новичок
Ну, попробовать эту функцию
Да все сохраняет отлично.

Код:
function DownloadFile(const URL:string; var Response:string): Boolean;
var
  WinHttpRequest: Variant;
begin
  Result:=True;
  try
    WinHttpRequest:=CreateOleObject('WinHttp.WinHttpRequest.5.1');
    WinHttpRequest.Open('GET', URL, False);
    WinHttpRequest.Send;
    Response:=WinHttpRequest.ResponseText;
  except
    Result:=False;
    Response:=GetExceptionMessage;
  end;
end;

function ServersFile(): Boolean;
var
  serverFile: String;
begin
  DownloadFile('http://www.sherlocksoftware.org/petz/files/dogz5.zip', serverFile)
  SaveStringToFile(ExpandConstant('{tmp}\dogz5.zip'), serverFile, True);
end;

Такое не подойдёт?
Спасибо, добавлю в закладки.
Но воспользуюсь своим вариантом, код менее громоздкий и по сути ничего более чем закачка файла не требуется.

Всем спасибо за помощь :ok:
 
Последнее редактирование:
Сверху