LiteNet.Ru - Актуально о ПК и ПО. 2006-2019.
СТАТЬИ | НОВОСТИ | ПРОГРАММЫ | ОБРАТНАЯ СВЯЗЬ | КАРТА САЙТА
Сейчас на сайте: 6 пользователей онлайн
Обновления
Материал На все смартфоны россиян обязали устанавливать 16 отечественных приложений [23.11.20]
Материал Kaspersky Virus Removal Tool 24.11.2020 [23.11.20]
Материал Dr.Web CureIt! 24.11.2020 [23.11.20]
Материал FileZilla 3.51.0 [23.11.20]
Материал Free Video Editor 1.4.57.311 [23.11.20]
Материал Freemake Video Converter 4.1.11.109 [23.11.20]
Материал VSDC Free Screen Recorder 1.3.2.385 [23.11.20]
Материал RouterPassView 1.9 [23.11.20]
Материал Google Chrome стал запускаться на 25% быстрее [22.11.20]
Материал Google Chrome 87.0.4280.66 [22.11.20]
Материал Avast Free Antivirus 20.9.5758 [21.11.20]
Материал Wireless Network Watcher 2.22 [21.11.20]
Комментарии Самый лучший брауз... [17.11.20]
Комментарии dynabook Satellite... [29.03.19]
Комментарии СПАСИБО!!! Получил... [04.03.19]
Комментарии Уважаемый Професси... [11.01.19]
Комментарии спасибо... [14.12.18]
Комментарии Спасибо, не заняло... [05.12.18]
Комментарии Toshiba satelit a2... [25.11.18]
Комментарии Вы шутите?... [23.11.18]
Комментарии Отличный продукт. ... [18.11.18]
Комментарии На второй вкладке ... [10.09.18]
Комментарии Помогло трёхсекунд... [04.07.18]
Комментарии Toshiba 440CDT Пр... [04.07.18]

RSS

Последние добавленные статьи

Delphi - автообновление программы через Интернет
22.05.2006

Если ваша программа содержит подключаемые модули (BPL или DLL) или есть необходимость обновлять саму программу, то наверняка стояла проблема обновления копий программы. С развитием Internet появилась прекрасная возможность сделать это быстро и красиво. В данной статье мы расскажем, как добавить опцию автообновления программ из Internet.

Delphi дает нам полный доступ к API WinInet (wininet.pas), что позволяет подключиться и скачать любой файл с указанного вебсайта, используя протоколы FTP или HTTP. Например, мы можем использовать функции API WinInet для создания FTP-браузера или программы для поиска на публичных FTP-серверах заданных файлов.

Основная функция нашей программы - GetInetFile:

uses Wininet;
function GetInetFile(const fileURL, FileName: 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(fileURL),nil,0,0,0);
try
AssignFile(f, FileName);
Rewrite(f,1);
repeat
InternetReadFile(hURL, @Buffer, SizeOf(Buffer), BufferLen);
BlockWrite(f, Buffer, BufferLen)
until BufferLen = 0;
CloseFile(f);
Result:=True;
finally
InternetCloseHandle(hURL)
end
finally
InternetCloseHandle(hSession)
end
end;

Замечание: конечно, этот пример нужно расширить, вставив, например, код для отображения прогресса скачивания в цикл.

Использовать функцию GetInetFile очень просто:

var FileOnNet, LocalFileName: string
begin
FileOnNet:='http://www.TrueMind.ru/files/article/forum.xml';
LocalFileName:='TrueMind.xml';
if GetInetFile(FileOnNet,LocalFileName)=True then
ShowMessage('Download successful')
else
ShowMessage('Error in file download')
end;

Этот кусок кода скачивает файл с http://www.TrueMind.ru/files/article/forum.xml и записывает его в текущий каталог под именем 'TrueMind.xml'. Все очень просто.

Что еще почитать?