Скачиваем и запускаем файл из инета средствами Delphi
uses Windows, Messages, Wininet, ShellAPI;
function GetInetFile(const URL, FileName: string): boolean; const BufferSize = 1024; // размер буффера для закачки фаила в килобайтах //следовательно если фаил большего размера то работать не будет //для таких случаев более удобен динамический массив var hSession, hURL: HInternet; //переменные соединения и открытия сессии Buffer: array[1..BufferSize] of Byte; //сам буфер BufferLen: DWORD; //длина прочитанного myfile: 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(URL), nil, 0, 0, 0); //получаем указатель на фаил в интернете try //-\\- AssignFile(myfile, FileName); //указываем и открываем на запись Rewrite(myfile,1); // фаил для заполнения скаченым из нета repeat //повторяем - InternetReadFile(hURL, @Buffer, SizeOf(Buffer), BufferLen); //пытаемся скачать BlockWrite(myfile, Buffer, BufferLen); //записываем в фаил until // - пока BufferLen = 0; //ничего не скачено а если уже скачали то… CloseFile(myfile); //закрываем закачанный фаил Result := True; //и говорим что закачали finally // на конец InternetCloseHandle(hURL); //закрываем соедениние end; finally // -\\- InternetCloseHandle(hSession); //закрываем указатель end; end;