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

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

13.01.2016, 19:18. Показов 3510. Ответов 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
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru