Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум на Исходниках.RU > Visual Basic: Общие вопросы > Засечь время скачивания |
Автор: salieri 17.04.17, 13:53 |
Доброго времени суток! Подскажите, пожалуйста, как мне время скачивания файла отследить. У меня задача следующая. Во время скачивания файла поставить счётчик (думаю, по таймеру) и засечь 10 секунд от начала до конца. Если за 10 сек. не удастся скачать (сайт висит и т.д...), перейти к скачиванию другого файла. У меня проблема в том, что ф-я DownloadFile вешает программу полностью. Возможно, есть какие-то другие, более простые варианты. Например, как-нибудь определить, есть ли вообще связь с сайтом. Как-нибудь.. GET или тому подобное.. ? <{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}> Option Explicit Private Declare Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long Event ErrorDownload(FromPathName As String, ToPathName As String) Event DownloadComplete(FromPathName As String, ToPathName As String) Public Function DownloadFile(FromPathName As String, ToPathName As String) As LogVar If URLDownloadToFile(0, FromPathName, ToPathName, 0, 0) = 0 Then DownloadFile = 1 RaiseEvent DownloadComplete(FromPathName, ToPathName) Else DownloadFile = 0 RaiseEvent ErrorDownload(FromPathName, ToPathName) End If End Function |
Автор: Akina 17.04.17, 16:20 |
URLDownloadToFile - синхронна. А callback Вы не определяете. так что Вы сами себе обрубили возможность прервать загрузку. Используйте другие методы загрузки. Например, с помощью Internet Transfer Control. |
Автор: salieri 18.04.17, 15:09 |
Akina, спасибо Вам огромное, разобрался! |