Топик с обсуждением качалки, прогрессбара и пр.

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 03.02.2006 (Пт) 9:33

Если ты хочешь, чтобы что-нибудь сделали за тебя, пиши в другой раздел ("Работа"). Либо на другом форуме, где обитают фрилансеры.
Но раз ты задаешь вопрос тут, значит ты хочешь получить знания, а не решение. А для того, чтобы получить знания, надо читать и думать.
Тебе уже дали всю информацию, которая необходима для решения твоей задачи, остается только читать и думать.
Lasciate ogni speranza, voi ch'entrate.

Alex-pc1
Новичок
Новичок
 
Сообщения: 30
Зарегистрирован: 24.12.2005 (Сб) 13:23

Сообщение Alex-pc1 » 03.02.2006 (Пт) 21:15

Я читаю и думаю, но 1 строчки кода для меня явно недостаточно.
.........да все просто блин отправь запрос винсоком..........
..........Обыкновенно. Подключаешься не к хосту, а к прокси, и отправляешь на него чуть откорректированный запрос............

тлоько в качалке нет компонента винсока......наверное..........

я знаю что мне далеко по знания до тех у кого 14 звездочек но если я знаю ответ на вопрос я не буду писать всякую лабуду типа, тут и так все написано....т.е. ты дятел и читать не умеешь!!! Но мне никак не впадлу будет воткнуть несколько строчек кода "в данном случае отнасяхегося к качалке" я подозриваю что подключится через прокси очень просто. но блин у нменя нифига не получается.

Я не программисят я электронщик а программирование это ну как увлечение чтоли, ну а эта программа просто должна облегчить мою работу.

Я недавно начал пользоваться форумами и что...я думал что люди которые помечены "Большой Человек","Шаман" и тд типа как учителя чтоли у них спросишь они ответят....,а отвечают по существу только те кто не такие "УМНЫЕ" как вы,а те у кого звезд поменьше,они не жмутся на куски кода, по сути вы "Шаманы" просто черти!!!

И если вы админы можите выкинуь или как там называется меня со своего форума...кроме исходника качалки за неделю я нихрена не узнал так какой с вас толк??? Под моим ником и так написано НОВИЧЕК зачем мне в каждом ответе обьяснять что я дятел?

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 03.02.2006 (Пт) 21:25

Мы все прекрасно понимаем. Толк в том, что мы должны указать человеку верное направление мыслей, а он сам должен найти верный ответ.

Почему вот я, например, нашел в яндексе ответ на заданный Вами вопрос через 5 минут? Запрос в яндексе "запрос через прокси", ответ в первой десятке результатов.

Alex-pc1
Новичок
Новичок
 
Сообщения: 30
Зарегистрирован: 24.12.2005 (Сб) 13:23

Сообщение Alex-pc1 » 03.02.2006 (Пт) 21:42

Это пока вы еще меня не выкинули "Шаманы" вы хреновы, почиайте свои сообщения и сообщения других!!!! :))))))))))))) и сами поймете что только обсираете других, а толку от вас 0.00%

....alibek:Обыкновенно.
Подключаешься не к хосту, а к прокси, и отправляешь на него чуть откорректированный запрос.

: это для тебя обыкновенно, а для других не очень!

.....а как замутить усилок ват на 300 в машину и чтоб не платить за него столько сколько он стоит в магазине??? : да бля обыкновенно, как два пальца, бля, береш 2(4) микрухи по 100р и мутиш импульсный пеобразователь 12->+-35(200р) че тут непонятного то???

....GSerg:Исходник приведён.
А если ты не можешь указать адрес соединения, в этом тебе никто не поможет.

....а как намотать транс для импульсника??? : да блин ты че, баклан, тороиды прдаються, провод тоже, бери да мотай, а если не знаешь как, то в этом тебе никто не поможет.


это я ваши сообщения перевел на понятный для себя язык, остальные пытались помочь, ЗА ЧТО ИМ ОГРОМНОЕ СПАСИБО, а шаманам пора на
funzor.net анекдоты писать.

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 03.02.2006 (Пт) 21:53

Брось кипятиться. Читай книги и учись. Рассчитывать, что на форуме разложат все по полочкам и разжуют, не стоит.

Предупреждение за нецензурщину.

Alex-pc1
Новичок
Новичок
 
Сообщения: 30
Зарегистрирован: 24.12.2005 (Сб) 13:23

Сообщение Alex-pc1 » 03.02.2006 (Пт) 22:06

re: Читай книги и учись
меня тут недавно похожая идея поситила....и тут же пропала когда я зацени сколько эти самые книги стоят!!!! VB чуть ли не для идиотов(ну я тоже не далеко ушел) толщиной страниц 350 - 560р!!!! ну ииии покупать???

я считал что форумы это для того чтобы люди общались и делились опытом (если не жалко) а тут почитал другие ветки......прежде чем писать зайди на поиск, это уже спрашивали....поищи на сайте.....


...Это типа у меня на улице спросят сколько время а я скажу что ты сядь на 11 маршрутку и доедь 6 остановок до главпочтампта, а на нем часы весят......, и все потому что я так крут что мне впадлу телефон из кормана достать!

Alex-pc1
Новичок
Новичок
 
Сообщения: 30
Зарегистрирован: 24.12.2005 (Сб) 13:23

Сообщение Alex-pc1 » 03.02.2006 (Пт) 22:10

Вы уж извините что я тему своими рукописями загадил так, но обидно маленько просто :(

Alex-pc1
Новичок
Новичок
 
Сообщения: 30
Зарегистрирован: 24.12.2005 (Сб) 13:23

Сообщение Alex-pc1 » 03.02.2006 (Пт) 22:31

Amed, спасибо что, пока не разу меня чайником не обозвал, но
я поискал в яндексе "запрос через прокси" ответы и на самом деле есть, но..... КАК ОТПРАВИТЬ, ЧЕМ???

и так:
1. я взял качалку
2. мне надо было чтобы перед закачкой определялся размер файла, это просто обязательно!!!
3. через ее прогресс и тд ну вобщем я нашел как узнать размер файла и если он меньше чем 20мб то cansel=1
4. я нашел как менять URL ну это даже для меня оказалось не очень сложно

и блин все я на этом успокоился но...админ моей канторы взял да ии вырубил NAT или как там сервер и теперь в инет могут попасть только те проги которые понимают прокси, а вот качалка она то может и понимет, а я то не очень и нет там такого поля PROXY: PORT:
а в модуль я даже лезть боюсь вот поэтому и спрашиваю, я просто хочу к качалке прикрутить эти поля и все!!!

neic
Жираф
Жираф
 
Сообщения: 492
Зарегистрирован: 13.02.2005 (Вс) 23:44
Откуда: Сланцы

Сообщение neic » 04.02.2006 (Сб) 0:21

Alex-pc1, блин захожу чутли не каждый раз в эту тему и всё смотрю где код на определение размера файла в нете, можешь кинуть сюды?

P.s. если тебе не жалко :) :)

Brusco
Обычный пользователь
Обычный пользователь
 
Сообщения: 50
Зарегистрирован: 22.10.2004 (Пт) 3:16
Откуда: Reutov, Russia

Сообщение Brusco » 04.02.2006 (Сб) 2:56

Alex-pc1 писал(а):Похоже на свой вопрос я так ответа и не получу..............

как же всетаки работать через прокси?


Очень просто, коннектишься к прокси-серверу, как к обычному хосту и шлёшь HTTP запрос, только это должен быть HTTP-прокси!

:idea: А лучше использовать для закачки файлов ActiveX компонент MS Internet Transfer Control, который использует библиотеку wininet.dll, в нём есть и настройки прокси.
Тут подробнее:
http://www.sources.ru/vb/network/send_f ... rnet.shtml

Alex-pc1
Новичок
Новичок
 
Сообщения: 30
Зарегистрирован: 24.12.2005 (Сб) 13:23

Сообщение Alex-pc1 » 04.02.2006 (Сб) 16:11

neic писал(а):Alex-pc1, блин захожу чутли не каждый раз в эту тему и всё смотрю где код на определение размера файла в нете, можешь кинуть сюды?

P.s. если тебе не жалко :) :)


Найди в коде качалки вот эту функцию:

Код: Выделить всё
Private Sub Kachalka_Progress(ByVal Progress As Long, ByVal ProgressMax As Long, ByVal Status As Long, ByVal StatusText As String, Cancel As Boolean)
Dim sProgress As String
    If ProgressMax Then
        sProgress = Format(Progress / ProgressMax, "00.00%")
        Label1.Caption = Format((ProgressMax / 1024) / 1024, "00.0")
       
    Else
        sProgress = "???"
    End If
    Caption = sProgress & " " & LookupStatus(Status) & " - " & StatusText
    DoEvents
    Cancel = SetCancel
End Sub


Ну дак вот ProgressMax это и есть размер файла в байтах

я сделал вот как:

Код: Выделить всё

Private Sub Kachalka_Progress(ByVal Progress As Long, ByVal ProgressMax As Long, ByVal Status As Long, ByVal StatusText As String, Cancel As Boolean)
Dim sProgress As String
Dim Size As String
If OperationType = 1 Then
     If ProgressMax Then
        sProgress = Format(Progress / ProgressMax, "00.00%")
        Size = Format((ProgressMax / 1024) / 1024, "00.00") & " Мб"
        Me.Caption = "Размер  :" & Size
        SetCancel = True
      Else
        Me.Caption = "Запрос размера...."
      End If
End If



Т.е. закачка начнется, и как только будет получен размер файла то
SetCancel = True то она остановится. Вот такой геморой я придумал :)

Alex-pc1
Новичок
Новичок
 
Сообщения: 30
Зарегистрирован: 24.12.2005 (Сб) 13:23

Сообщение Alex-pc1 » 04.02.2006 (Сб) 16:19

Brusco писал(а):
Alex-pc1 писал(а):Похоже на свой вопрос я так ответа и не получу..............

как же всетаки работать через прокси?


Очень просто, коннектишься к прокси-серверу, как к обычному хосту и шлёшь HTTP запрос, только это должен быть HTTP-прокси!

:idea: А лучше использовать для закачки файлов ActiveX компонент MS Internet Transfer Control, который использует библиотеку wininet.dll, в нём есть и настройки прокси.
Тут подробнее:
http://www.sources.ru/vb/network/send_f ... rnet.shtml


Большое спасибо, в статье оч доступно все расписано, буду пробовать

miwutka
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 76
Зарегистрирован: 10.11.2005 (Чт) 16:34
Откуда: Moscow, Elektrostal

Сообщение miwutka » 18.04.2006 (Вт) 8:36

А если у меня скачка вызывается из другого модуля, как отслеживать события Complete, например?
если есть к примеру модуль, из которого подряд вызывается скачка на два файла, после полной закачки которых должно произойти некоторое действие, каков должен быть алгоритм?

Спасибо

miwutka
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 76
Зарегистрирован: 10.11.2005 (Чт) 16:34
Откуда: Moscow, Elektrostal

Сообщение miwutka » 18.04.2006 (Вт) 8:40

Public Method As kach_tlb.BINDVERB
- user defined type not defined
че делать?

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 20.04.2006 (Чт) 20:08

miwutka, ответ уже ушёл тебе в мыло. Однако дискуссию, думаю, лучше продолжать здесь -- вдруг у кого-то потом возникнут такие же сложности.
Изображение

kuhtiov
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 419
Зарегистрирован: 03.08.2006 (Чт) 5:31

Сообщение kuhtiov » 24.01.2007 (Ср) 14:58

Короче говоря, кирпич недоработан. В описание было написано, что данный код поддерживает proxy, а в итоге головная боль. Извиняюсь если кого обидел!!!

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 24.01.2007 (Ср) 18:31

Конкретные замечания есть? или только этот флейм?
Изображение

kuhtiov
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 419
Зарегистрирован: 03.08.2006 (Чт) 5:31

Сообщение kuhtiov » 26.01.2007 (Пт) 13:51

Конкретное замечание чуть выше. Если в кирпич добавить галочку для работы с proxy и поля для proxy и порта, тогда смело можно писать, что этот кирпич работает с проксёй

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 26.01.2007 (Пт) 17:21

Этот кирпич работает с проксёй, выбранной по умолчанию в настройках IE. В отличие от, например, голого URLDownloadToFile.

Скачивать через произвольный прокси urlmon не позволяет.
Изображение

kuhtiov
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 419
Зарегистрирован: 03.08.2006 (Чт) 5:31

Сообщение kuhtiov » 31.01.2007 (Ср) 7:42

Блин, ну а сразу нельзя было так написать? :) . Теперь все понятно. Спасибо за пояснение!!!

miwutka
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 76
Зарегистрирован: 10.11.2005 (Чт) 16:34
Откуда: Moscow, Elektrostal

Сообщение miwutka » 28.06.2007 (Чт) 15:12

скажите, как отслеживать все ответы сервера? например если был вызов из качалки, а сервер был недоступен или инет вырубился или просто отказали. где и как получить результат скачивания? и причину
... я расправляю крылья ...

miwutka
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 76
Зарегистрирован: 10.11.2005 (Чт) 16:34
Откуда: Moscow, Elektrostal

Сообщение miwutka » 03.07.2007 (Вт) 15:46

ну ответьте ктонить!!
... я расправляю крылья ...

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 03.07.2007 (Вт) 16:07

Ты за пять дней не смог постучать на несуществующий сервер? Или не смог вырубить сеть, чтобы посмотреть ответы?
Лучший способ понять что-то самому — объяснить это другому.

miwutka
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 76
Зарегистрирован: 10.11.2005 (Чт) 16:34
Откуда: Moscow, Elektrostal

Сообщение miwutka » 03.07.2007 (Вт) 17:04

это к чему вообще?: меня интересует, как реагирует качалка на разные овтеты сервера и как их получить. Проблема в том, что скачать файл удается не с первого раза, хочется знать в чем причина.
... я расправляю крылья ...

Cytron
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 266
Зарегистрирован: 15.02.2007 (Чт) 21:09

Сообщение Cytron » 03.07.2007 (Вт) 19:52

скачай к прримеру се reget и скачивай все с разных серверов, коннекться к ним и. т. д. там есть лог. берешь и смотришь его. всё.
это хотел сказать Antonariy

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 03.07.2007 (Вт) 20:38

miwutka, настырный аж ужас...

Если скачка неуспешная, то метод DownloadXxx сгенерирует ошибку.
Код ошибки указывает на её причину.
Возможные коды объявлены как константы INET_E_XXX в файле urlmon.h
Изображение

SSecurity
Служба безопасности
Аватара пользователя
 
Сообщения: 1283
Зарегистрирован: 19.08.2003 (Вт) 1:11
Откуда: Россия, Мурманск

Сообщение SSecurity » 07.07.2007 (Сб) 18:09

По поводу прокси, я малосьб не понял ...:)

Мой ответ такой, если у тебя HTTP-прокси
то там все просто

Код: Выделить всё
Dim HOST as string
Dim PORT as string
Dim PROXYHOST as string
Dim PROXYPORT as string

HOST = "192.168.0.2"
PORT = "80"
PROXYHOST = "192.168.0.1"
PROXYPORT = "8080"

WINSOCK1.Connect PROXYHOST, VAL(PROXYPORT)
WINSOCK1.Send "CONNECT " + HOST + ":" + PORT + vbcr


Если Используешь НОСКИ (SOCKS) там нужно протокол читать ... там есть идентификация пользователя в 5ой версии, 4ая тоже там имеет свойсинтаксис.

С Уважением,
Сергей
Программист - это маленький Бог, а все его ошибки - это самостоятельные творения:)
Так задумано:)

SSecurity
Служба безопасности
Аватара пользователя
 
Сообщения: 1283
Зарегистрирован: 19.08.2003 (Вт) 1:11
Откуда: Россия, Мурманск

По существу надо читать Описание HTTP

Сообщение SSecurity » 07.07.2007 (Сб) 18:15

В описании HTTP протокола приведен список возможных ошибок.
И если тебе сервер говорит что он работает по HTTP версии 1.0 или 1.1 то значит коды ошибок "стопудова" должны соответсвоать описанию в протоколе.

Единственное что он на англ. языке, но я где-то и русский видел.

Корень следует там искать.
Да и что посылать, там тоже написано :)
Тебе тока надо решить проблему чтоб тебе винсок все данные отдал... а не 99.9% :)

С Уважением,
Сергей
Программист - это маленький Бог, а все его ошибки - это самостоятельные творения:)
Так задумано:)

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 07.07.2007 (Сб) 20:15

SSecurity, моя качалка работает через urlmon и не ограничена HTTP.
Поддерживаются все стандартные протоколы, включая даже about:
Поэтому коды ошибок с HTTP-статусами никак не связаны.
Изображение

etokoff
Начинающий
Начинающий
 
Сообщения: 1
Зарегистрирован: 18.07.2007 (Ср) 23:34

Сообщение etokoff » 20.07.2007 (Пт) 11:21

tyomitch
За качалку респект!!!
Присабачил ее в Access и наполняю базу, все ОК.
Однако, появилась необходимость одновременной закачки в несколько потоков, создаю несколько объектов класса Качалка, но увы последующий не стартует, пока не завершиться предыдущий.
Пробовал стартовать последующие объекты по событиям предыдущих, но в таком случае работает прогрессбар только последнего стартанувшего, а потом тот, из события которого был вызов. Использую DownloadToFile, вот пример старта последующего потока:
Код: Выделить всё
Private Sub Kachalka_Progress(ByVal Progress As Long, ByVal ProgressMax As Long, ByVal Status As Long, ByVal StatusText As String, Cancel As Boolean)
    If ProgressMax Then
        ProgressBar6.Value = Progress / ProgressMax * 100
    Else
        ProgressBar6.Value = 0
    End If
    DoEvents
    If first Then
        first = False
        Kachalka2.DownloadToFile st2, "kachalka2.out"
    End If
    Cancel = SetCancel
End Sub

Задай направление... Подскажи, что я делаю не так...
Или пробовать через фиберы???
Заранее благодарен

Пред.След.

Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 44

    TopList