mynologin
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору liski Проблема заключается в том, что USD начинает качать файл по этой прямой ссылке, как html-страничку, не проверяя тип содержимого. Т.е. он просто запрашивает размер файла по ссылке (вызовом HttpQueryInfo с флагом HTTP_QUERY_CONTENT_LENGTH), получает в ответ, например, 100 MB, а потом входит в цикл вызова InternetReadFile в основном потоке (который отвечает за работу GUI), пока все эти 100 MB не скачает. В принципе, в образе найдётся место для того, чтобы втыкнуть патчем проверку на размер файла, но это плохое решение. По хорошему USD должен сначала получать тип содержимого (вызовом HttpQueryInfo с флагом HTTP_QUERY_CONTENT_TYPE) и скачивать, как html-страничку, только если получит тип содержимого "text/html". Для таких прямых ссылок тип содержимого — "application/octet-stream", на который USD должен реагировать соответствующим образом. До тех пор, пока автор не нашёл время исправить поведение USD, могу предложить следующее решение: вот отсюда скачиваете утилиту TCPView. В случае, если USD виснет на такой прямой ссылке (что означает, что он усердно тянет многометровый файл в надежде получить html-страничку), запускаете TcpView.exe и в списке соединений находите принадлежащее USDownloader.exe. После этого нажимаем правой кнопкой на строку с этим соединением и жмём Close Connection. После этого USD начнёт отвечать... пока опять не додумается начать качать по этой или аналогичной ссылке. | Всего записей: 65 | Зарегистр. 07-05-2011 | Отправлено: 02:46 21-05-2011 | Исправлено: mynologin, 03:14 21-05-2011 |
|