![]() |
|
![]() ![]() ![]() |
|
RDC |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 205 Регистрация: 26.1.2008 Репутация: нет Всего: нет |
Пользуюсь вот таким кодом для скачивания файла с инета:
На время скачивания програ встаёт в ступор и кажется что она повисла, но стоит подождать пару минут и файл скачивается и прога дальше работает. Как убрать висняк? PS Использовать TIdHTTP НЕ ПРЕДЛАГАТЬ! --------------------
Живопись |
|||
|
||||
586 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2243 Регистрация: 8.5.2006 Репутация: 57 Всего: 146 |
Создай поток (thread).
|
|||
|
||||
TiKKi |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 13.5.2006 Репутация: 1 Всего: 2 |
Чем этот вариант плох?
|
|||
|
||||
RDC |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 205 Регистрация: 26.1.2008 Репутация: нет Всего: нет |
TiKKi, вариант хорош, только не пойму как там отследить что скачиваемого файла не существует?
--------------------
Живопись |
|||
|
||||
TiKKi |
|
||||||||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 13.5.2006 Репутация: 1 Всего: 2 |
GetTarget.h:
GetTarget.cpp:
Интересно, есть над чем подумать на досуге. |
||||||||||
|
|||||||||||
586 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2243 Регистрация: 8.5.2006 Репутация: 57 Всего: 146 |
В том примере это как раз реально. После InternetOpenUrl вызови InternetGetLastResponseInfo или HttpQueryInfo HTTP_QUERY_STATUS_CODE (вариант с HttpQueryInfo я тестировал раньше - работает: 200 - OK, 404 - файл не найден, 403 - отказано в доступе (HTTP Status Codes)). |
|||
|
||||
TiKKi |
|
||||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 13.5.2006 Репутация: 1 Всего: 2 |
Ага, я тоже вчера функцию HttpQueryInfo прикрутил, вот что у меня получилось:
С помощью функции InternetGetLastResponseInfo не получится, так как она используется когда GetLastError возвращает ERROR_INTERNET_EXTENDED_ERROR. Если же файла не существует, то InternetOpenUrl все равно не вернет NULL, следовательно GetLastError вернет ноль. |
||||||
|
|||||||
![]() ![]() ![]() |
Правила форума "С++ Builder" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C++ Builder | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |