

P. S. Блин, пора заканчивать с Эплманом, а то нехорошие мысли о многопоточности в голову лезут

Tarik писал(а):Всем привет! Давно я что-то вопросов не задавалНа этот раз меня интересует вот что. Я качаю файл с FTP посредством ф-ции FtpGetFile. Файл довольно объёмный (~30 метров), поэтому появилась мысль выводить прогресс загрузки (типа "скачано n байт из m байт"). Однако вышеозначенная ф-ция наглухо блокирует всю программу, соответсвенно нет никакой возможности производить какие-либо действия до её (ф-ции то есть) завершения
Что посоветуете?
P. S. Блин, пора заканчивать с Эплманом, а то нехорошие мысли о многопоточности в голову лезут
Dim hConnection As Long, hOpen As Long
Dim pData As WIN32_FIND_DATA, hFind As Long, lRet As Long
hOpen = InternetOpen("Revival", INTERNET_OPEN_TYPE_PRECONFIG, vbNullString, vbNullString, 0)
hConnection = InternetConnect(hOpen, downloadServer, INTERNET_DEFAULT_FTP_PORT, "anonymous", "email@not.set", INTERNET_SERVICE_FTP, IIf(PassiveConnection, INTERNET_FLAG_PASSIVE, 0), 0)
FtpSetCurrentDirectory hConnection, cwd
pData.cFileName = String(MAX_PATH, 0)
hFind = FtpFindFirstFile(hConnection, fileName, pData, 0, 0) 'Ищется нужный файл...
InternetCloseHandle hFind
pb.Visible = True
pb.Max = pData.nFileSizeLow + 1 '...узнаётся его размер и присваивается св-ву Max ProgressBar'а
FtpGetFile hConnection, fileName, App.Path & "\" & fileName, False, 0, FTP_TRANSFER_TYPE_UNKNOWN, 0 'Вот этим-то я и качаю файл
InternetCloseHandle hConnection
InternetCloseHandle hOpen
Call Shell(App.Path & "\" & fileName, vbNormalFocus)
Сейчас этот форум просматривают: AhrefsBot, Yandex-бот и гости: 35