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

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

13.01.2016, 19:18. Показов 3676. Ответов 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
18033 / 7736 / 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
18033 / 7736 / 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
Ответ Создать тему
Новые блоги и статьи
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru