Вопрос про винсок&Файлы из интернета

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
RazArt
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 118
Зарегистрирован: 08.09.2008 (Пн) 14:55
Откуда: Н.Новгород

Вопрос про винсок&Файлы из интернета

Сообщение RazArt » 27.11.2008 (Чт) 20:23

Как используя винсок скачивать файлы из интернета, не прибегая к стандартной качалке IE.
P.S. Я юзал поиск и все примеры реализованны через IE(

BION
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 259
Зарегистрирован: 24.01.2005 (Пн) 21:05

Re: Вопрос про винсок&Файлы из интернета

Сообщение BION » 27.11.2008 (Чт) 22:11

RazArt писал(а):Как используя винсок скачивать файлы из интернета, не прибегая к стандартной качалке IE.
P.S. Я юзал поиск и все примеры реализованны через IE(


Для скачивания из интеренета ненадо использовать винсок, достаточно URLDownloadToFile
Код: Выделить всё
Private Declare Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long
Буээ!

RazArt
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 118
Зарегистрирован: 08.09.2008 (Пн) 14:55
Откуда: Н.Новгород

Re: Вопрос про винсок&Файлы из интернета

Сообщение RazArt » 28.11.2008 (Пт) 14:36

А подробнее, зачем нужны половина этих переменных?

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Re: Вопрос про винсок&Файлы из интернета

Сообщение Viper » 28.11.2008 (Пт) 14:50

RazArt писал(а):А подробнее, зачем нужны половина этих переменных?
Может быть все-таки аргументов?
Весь мир матрица, а мы в нем потоки байтов!

RazArt
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 118
Зарегистрирован: 08.09.2008 (Пн) 14:55
Откуда: Н.Новгород

Re: Вопрос про винсок&Файлы из интернета

Сообщение RazArt » 28.11.2008 (Пт) 14:51

Ну да, просто привык, энто же все равно переменные)

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Вопрос про винсок&Файлы из интернета

Сообщение iGrok » 28.11.2008 (Пт) 15:23

RazArt писал(а):Ну да, просто привык, энто же все равно переменные)

Открываешь гугль, вбиваешь туда "URLDownloadToFile", и по первой же ссылке смотришь подробное описани функции на английском. Если что-то остаётся непонятным - спрашиваешь. )
label:
cli
jmp label

RazArt
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 118
Зарегистрирован: 08.09.2008 (Пн) 14:55
Откуда: Н.Новгород

Re: Вопрос про винсок&Файлы из интернета

Сообщение RazArt » 28.11.2008 (Пт) 15:29

Здесь он совершенно не реагирует, если нужна авторизация пользователя
Код: Выделить всё
Private Declare Function URLDownloadToFile Lib "urlmon" _
   Alias "URLDownloadToFileA" _
  (ByVal pCaller As Long, _
   ByVal szURL As String, _
   ByVal szFileName As String, _
   ByVal dwReserved As Long, _
   ByVal lpfnCB As Long) As Long
   
Private Const ERROR_SUCCESS As Long = 0
Private Const BINDF_GETNEWESTVERSION As Long = &H10
Private Const INTERNET_FLAG_RELOAD As Long = &H80000000


Private Sub Form_Load()

   Command1.Caption = "Download File"
   
End Sub

   
Private Sub Command1_Click()

   Dim sSourceUrl As String
   Dim sLocalFile As String
   Dim hfile As Long
   
   sSourceUrl = "http://vbnet.mvps.org/code/faq/fileloadtext.htm"
   sLocalFile = "c:\deleteme.htm"
   
   Label1.Caption = sSourceUrl
   Label2.Caption = sLocalFile
   
   If DownloadFile(sSourceUrl, sLocalFile) Then
   
      hfile = FreeFile
      Open sLocalFile For Input As #hfile
         Text1.Text = Input$(LOF(hfile), hfile)
      Close #hfile
     
   End If

End Sub


Public Function DownloadFile(sSourceUrl As String, _
                             sLocalFile As String) As Boolean
 
  'Download the file. BINDF_GETNEWESTVERSION forces
  'the API to download from the specified source.
  'Passing 0& as dwReserved causes the locally-cached
  'copy to be downloaded, if available. If the API
  'returns ERROR_SUCCESS (0), DownloadFile returns True.
   DownloadFile = URLDownloadToFile(0&, _
                                    sSourceUrl, _
                                    sLocalFile, _
                                    BINDF_GETNEWESTVERSION, _
                                    0&) = ERROR_SUCCESS
   
End Function

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

Re: Вопрос про винсок&Файлы из интернета

Сообщение tyomitch » 28.11.2008 (Пт) 17:52

Качалка из Кирпичей умеет обрабатывать авторизацию.
Изображение

RazArt
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 118
Зарегистрирован: 08.09.2008 (Пн) 14:55
Откуда: Н.Новгород

Re: Вопрос про винсок&Файлы из интернета

Сообщение RazArt » 28.11.2008 (Пт) 18:15

Умеет, но твоя качалка сделанна из IE, а я хочу узнать как качать файлы винсоком

awl100Alex
Постоялец
Постоялец
 
Сообщения: 355
Зарегистрирован: 29.01.2008 (Вт) 15:19
Откуда: Украина

Re: Вопрос про винсок&Файлы из интернета

Сообщение awl100Alex » 28.11.2008 (Пт) 22:49

RazArt
Если тебе так нужно именно через Winsock... да еще и авторизовываться... то, скорее всего, для начала тебе нужно будет запустить на своем компе службу IIS (Internet Information Services) – таким образом сделав его Web-сервером. Или использовать удаленный... корпоративный, например.
Затем используя POST-запросы в методе SendData в конце добавлять строку вида:..
Login=Здесь_твой_Логин&Domain= Здесь_твой_Сайт&Password= Здесь_твой_Пароль
- по сути повторять тоже, что и делают браузеры. После этого, принимать ответ в GetData в таком же тэговском виде и анализировать, разделять, сохранять в файл...
P.S.
Это все пока чисто теоретическая идея, на практике не проверял. Может получится, а может и нет в виду каких-то неучтенных тонкостей. Не знаю, но попробовать можно.

BION
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 259
Зарегистрирован: 24.01.2005 (Пн) 21:05

Re: Вопрос про винсок&Файлы из интернета

Сообщение BION » 29.11.2008 (Сб) 0:12

WinHTTP+MSHTML+URLDownloadToFile
Буээ!

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

Re: Вопрос про винсок&Файлы из интернета

Сообщение tyomitch » 29.11.2008 (Сб) 0:34

RazArt писал(а):Умеет, но твоя качалка сделанна из IE, а я хочу узнать как качать файлы винсоком

Там тот же самый urlmon, что и в предложенной URLDownloadToFile.
А чего ради нужно именно через винсок?
Изображение

RazArt
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 118
Зарегистрирован: 08.09.2008 (Пн) 14:55
Откуда: Н.Новгород

Re: Вопрос про винсок&Файлы из интернета

Сообщение RazArt » 30.11.2008 (Вс) 10:33

Мне просто интерестно как работают эти WinAPI функции и могу ли я сделать что-то подобное

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Вопрос про винсок&Файлы из интернета

Сообщение alibek » 01.12.2008 (Пн) 8:57

Можешь. Только вначале придется почитать про протокол HTTP и Cookies.
Lasciate ogni speranza, voi ch'entrate.


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

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

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

    TopList