Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/18: Рейтинг темы: голосов - 18, средняя оценка - 4.72
5 / 5 / 0
Регистрация: 07.04.2010
Сообщений: 328

Скачивание файла из интернет функцией URLDownloadToFile через прокси сервер

13.01.2016, 19:18. Показов 3572. Ответов 18
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет!
Уважаемые гуру кода прошу помочь.....
Является ли препятствием для работы функции URLDownloadToFile выход в интернет через прокси сервер,
и если да, то как решить этот вопрос если все данный по идентификации в принципе есть ?
Спасибо за помощь....
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.01.2016, 19:18
Ответы с готовыми решениями:

Интернет через прокси-сервер
Есть доступ в интернет на одном компьютере, хочу поделиться интернетом с другим компьютером. Вопрос, как это сделать? Ранее я это делал с...

Доступ в интернет только через прокси-сервер
Доброго времени суток. Имеется прокси-сервер (http), через который по локальной сети осуществляется доступ в интернет, посредством...

Настройка работы интернет через локальный прокси-сервер
Добрый день! Сразу прошу прощения за глупый вопрос просто этого дела я никогда не касался и являюсь в нем новичком. Есть локальная...

18
oh my god
 Аватар для fever brain
1456 / 796 / 161
Регистрация: 05.01.2016
Сообщений: 2,307
Записей в блоге: 8
13.01.2016, 21:32
А можно и не использовать WinApi

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
Option Explicit
 
Dim WithEvents cb As CommandButton, l&, t&, w&, h&
Const r = 90, sl$ = "\"
 
Private Sub cb_Click()
    Dim link$, Path$, j$()
    link = "http://pendientedemigracion.ucm.es/info/vivataca/images/n79/informaticos.jpg"
    j = Split(link, "/")
    
    'На киберфоруме эта строка отображаеться без слэша ??? \рабочий стол
    Path$ = Environ("userprofile") & "\рабочий стол" & sl & j(UBound(j))
 
    
    ' скачиваем файл из интернета
    DownloadFile link, Path$
    ' открываем скачанный файл
    CreateObject("wscript.shell").Run """" & Path & """"
End Sub
 
Private Sub Form_Load()
    l = r: t = r: w = r * 20: h = r * 4
    Set cb = Controls.Add("vb.CommandButton", "cb")
    With cb
        .Move l, t, w, h
        .Caption = "Загрузить и открыть"
        .Visible = 1
    End With
End Sub
 
Function DownloadFile(ByVal URL$, ByVal LocalPath$) As Boolean
    ' Функция скачивает файл по ссылке URL$
    ' и сохраняет его под именем LocalPath$
    Dim XMLHTTP, ADOStream, FileName
    On Error Resume Next: Kill LocalPath$
 
    Set XMLHTTP = CreateObject("Microsoft.XMLHTTP")
    XMLHTTP.Open "GET", Replace(URL$, "", "/"), "False"
    XMLHTTP.send
    If XMLHTTP.statustext = "OK" Then
        Set ADOStream = CreateObject("ADODB.Stream")
        ADOStream.Type = 1: ADOStream.Open
        ADOStream.Write XMLHTTP.responseBody
 
        ADOStream.SaveToFile LocalPath$, 2
        ADOStream.Close: Set ADOStream = Nothing
        DownloadFile = True
    Else
        'MsgBox "Не удаётся скачать файл " & XMLHTTP.statustext
    End If
    Set XMLHTTP = Nothing
End Function
0
oh my god
 Аватар для fever brain
1456 / 796 / 161
Регистрация: 05.01.2016
Сообщений: 2,307
Записей в блоге: 8
13.01.2016, 21:44
P.s
Я серёзно, не отображается в коде вот этот знак, попробуйте ктонибудь если не верите
для того чтобы его увидеть приходиться писать 2 слэша

Visual Basic
1
2
  x= ""
  y= "\"
Миниатюры
Скачивание файла из интернет функцией URLDownloadToFile через прокси сервер  
0
5 / 5 / 0
Регистрация: 07.04.2010
Сообщений: 328
13.01.2016, 21:46  [ТС]
Set cb = Controls.Add("vb.CommandButton", "cb") - ругается ..... у меня VB5
0
oh my god
 Аватар для fever brain
1456 / 796 / 161
Регистрация: 05.01.2016
Сообщений: 2,307
Записей в блоге: 8
13.01.2016, 21:53
Лучший ответ Сообщение было отмечено The trick как решение

Решение

Тогда закоментируй это
'Dim WithEvents cb As CommandButton, l&, t&, w&, h&

и это
'Set cb = Controls.Add("vb.CommandButton", "cb")

Затем закинь на форму кнопку, и дай ей имя (свойство>>Name) имя .. *CB*

Добавлено через 3 минуты
Вот я поменял
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
Option Explicit
Dim l, t&, w&, h&
Const r = 90, sl$ = ""
 
Private Sub Form_Click()
    Dim link$, Path$, j$()
    link = "http://pendientedemigracion.ucm.es/info/vivataca/images/n79/informaticos.jpg"
    j = Split(link, "/")
    'На киберфоруме эта строка отображаеться без слэша ??? \рабочий стол
    Path$ = Environ("userprofile") & "\рабочий стол" & sl & j(UBound(j))
    ' скачиваем файл из интернета
    DownloadFile link, Path$
    ' открываем скачанный файл
    CreateObject("wscript.shell").Run """" & Path & """"
End Sub
 
Private Sub Form_Load()
    Me.Caption = "Нажми на форму и подожди 5 сек"
    Me.Move 100, 100, 5000, 900
End Sub
 
Function DownloadFile(ByVal URL$, ByVal LocalPath$) As Boolean
    ' Функция скачивает файл по ссылке URL$
    ' и сохраняет его под именем LocalPath$
    Dim XMLHTTP, ADOStream, FileName
    On Error Resume Next: Kill LocalPath$
 
    Set XMLHTTP = CreateObject("Microsoft.XMLHTTP")
    XMLHTTP.Open "GET", Replace(URL$, "", "/"), "False"
    XMLHTTP.send
    If XMLHTTP.statustext = "OK" Then
        Set ADOStream = CreateObject("ADODB.Stream")
        ADOStream.Type = 1: ADOStream.Open
        ADOStream.Write XMLHTTP.responseBody
 
        ADOStream.SaveToFile LocalPath$, 2
        ADOStream.Close: Set ADOStream = Nothing
        DownloadFile = True
    Else
        'MsgBox "Не удаётся скачать файл " & XMLHTTP.statustext
    End If
    Set XMLHTTP = Nothing
End Function
0
5 / 5 / 0
Регистрация: 07.04.2010
Сообщений: 328
13.01.2016, 21:55  [ТС]
j = Split(link, "/") - функцию split не понимает...
0
oh my god
 Аватар для fever brain
1456 / 796 / 161
Регистрация: 05.01.2016
Сообщений: 2,307
Записей в блоге: 8
13.01.2016, 21:55
Цитата Сообщение от fever brain Посмотреть сообщение
sl$ = ""
Здесь должна быть косая линия, странно в сообщениях она почемуто не отображается
не знаю почему и знать нехочу, это ж сайт программистов, на таком сайте глюки неизбежны ..
введи её сам
0
oh my god
 Аватар для fever brain
1456 / 796 / 161
Регистрация: 05.01.2016
Сообщений: 2,307
Записей в блоге: 8
13.01.2016, 21:57
Лови исходник, если не получиться переходи на VB6
Вложения
Тип файла: rar Form1.rar (1.1 Кб, 16 просмотров)
0
5 / 5 / 0
Регистрация: 07.04.2010
Сообщений: 328
13.01.2016, 22:08  [ТС]
да на 6 работает, на 5 нет функции split, что она делает ?

Добавлено через 3 минуты
в принципе ее можно написать самому на 5, спасибо...
так с прокси при таком способе тоже могут быть проблемы ?

Добавлено через 4 минуты
да и какой здесь механизм скачивания ?
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18030 / 7733 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
13.01.2016, 22:09
Цитата Сообщение от fever brain Посмотреть сообщение
Я серёзно, не отображается в коде вот этот знак, попробуйте ктонибудь если не верите
Багофича движка. Нужно ставить двойное \\
Цитата Сообщение от fever brain Посмотреть сообщение
и это
'Set cb = Controls.Add("vb.CommandButton", "cb")
Я конечно извиняюсь. А нафига в каждый код тыкать динамически создаваемые контролы. Это даёт какие то особые преимущества (особенно для примеров и ответов в темах) ?
Цитата Сообщение от fever brain Посмотреть сообщение
А можно и не использовать WinApi
И как Microsoft.XMLHTTP подхватит настройки прокси, если они например, не заданы в Internet Explorer-е
или если проксянок несколько, или если юзаем для разных целей одновременно два подключения - напрямую и через прокси?

Под проксянку лично на WinAPI не писал, но подозреваю, что все делается через

InternetOpen -> InternetConnect, в которой и указываются все данные авторизации proxy.
Пример на С++ (там без прокси, но почитав статью выше заменить пару аргументов не сложно).
0
5 / 5 / 0
Регистрация: 07.04.2010
Сообщений: 328
13.01.2016, 22:13  [ТС]
Цитата Сообщение от Dragokas Посмотреть сообщение
И как Microsoft.XMLHTTP подхватит настройки прокси, если они например, не заданы в Internet Explorer-е
т.е. если в IE заданы настройки прокси, то через API все должно нормально качаться ?
0
oh my god
 Аватар для fever brain
1456 / 796 / 161
Регистрация: 05.01.2016
Сообщений: 2,307
Записей в блоге: 8
13.01.2016, 22:15
Цитата Сообщение от GIP Посмотреть сообщение
т.е. если в IE заданы настройки прокси, то через API все должно нормально качаться ?
Нет, теоретически они должны как-раз моим способом качаться, так как Microsoft.XMLHTTP это DLL'ка IE
0
5 / 5 / 0
Регистрация: 07.04.2010
Сообщений: 328
13.01.2016, 22:16  [ТС]
Цитата Сообщение от fever brain Посмотреть сообщение
Нет, теоретически они должны как-раз моим способом качаться, так как Microsoft.XMLHTTP это DLL'ка IE

это без проблем для всех версий IE ?
0
oh my god
 Аватар для fever brain
1456 / 796 / 161
Регистрация: 05.01.2016
Сообщений: 2,307
Записей в блоге: 8
13.01.2016, 22:17
Запчасть от Internet Explorer'а, которая использует общую папку с настройками юзера ..
но это теоретически .. должно получиться
0
5 / 5 / 0
Регистрация: 07.04.2010
Сообщений: 328
13.01.2016, 22:18  [ТС]
насколько я знаю функцию URLDownloadToFile IE тоже до 8ой версии использовал в своей работе...
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18030 / 7733 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
13.01.2016, 22:20
Цитата Сообщение от GIP Посмотреть сообщение
т.е. если в IE заданы настройки прокси, то через API все должно нормально качаться ?
Исходя из кода fever brain, только мое предположение. Лично не проверял.

Если нужно быстро и по простому, воспользуйтесь утилитой curl или wget.
Пример ее использования с указанием настроек прокси можете подсмотреть в этом примере
или в хелпе из командной строки wget --help
Если по нему будут вопросы, спрашивать не в этом разделе, а в Windows Batch.
0
5 / 5 / 0
Регистрация: 07.04.2010
Сообщений: 328
13.01.2016, 22:23  [ТС]
спасибо за ответы....буду еще разбираться....
0
oh my god
 Аватар для fever brain
1456 / 796 / 161
Регистрация: 05.01.2016
Сообщений: 2,307
Записей в блоге: 8
13.01.2016, 22:33
Цитата Сообщение от Dragokas Посмотреть сообщение
А нафига в каждый код тыкать динамически создаваемые контролы
Ну нравится мне так делать, дольше рассказывать что и куда надо закинуть, а исходники заливать по каждому случаю тоже не хочется, кстати с заливкой тоже баги наверное форум сейчас заточен строго на Internet Explorer, другим браузерам хваленные функции форума недоступны .. поэтому, пишу ручками

Если Split не работает, тогда допиши примерно такую строчку [Косая линия] рабочий стол [Косая линия] 1.jpg
0
5 / 5 / 0
Регистрация: 07.04.2010
Сообщений: 328
14.01.2016, 17:05  [ТС]
сегодня попробовал скачать файл из локальной сети через прокси сервер функцией URLDownloadToFile, все прошло успешно, без проблем...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.01.2016, 17:05
Помогаю со студенческими работами здесь

Доступ с точки доступа в интернет через шлюз или прокси сервер?
Дано: Роутер Zyxel, во внутренней сети офиса. Роутер находится в режиме точки доступа, т.е. свои адреса не раздает, а шлет всех клиентов к...

При передаче post запроса через прокси сервер в ответ приходят ошибки с прокси сервера
При передаче post запроса через прокси сервер в ответ прилетают ошибки с прокси сервера: <p><b>Invalid Request</b>...

При скачивании файла через URLDownloadToFile и из браузера скачиваются разные файлы
Здрасте, я тут немного охреневаю. Есть файл на серваке, и есть код: URLDownloadToFile(0,...

Скачивание файла на сервер
Как скачать файл c чужого сайта на свой, если мы получаем прямую ссылку на него, например (http://server.ru/file1.zip) и нам уже на своём...

Настроить прокси-сервер на компе чтобы он авторизацию проводил не через текущего пользователя, а через заданного
Теперь сама задача, заключается в следующем: комп подключен к доменной сети. как настроить прокси-сервер на компе чтобы он авторизацию...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru