Вернуться   Форум программистов > Форум Программирование > Форум Visual Basic

Visual Basic

Программирование на Visual Basic

Ответ
 
Старый 15.11.2009, 00:36   #1
vasjos
Новичок
 
Регистрация: 11.11.2009
Сообщений: 1
vasjos пока не определено
По умолчанию Загрузка страницы с использованием прокси через WinInet API

Оч нужно загрузить страницу используя прокси. Использую для этого код:

[code]

Public Const INTERNET_OPEN_TYPE_PRECONFIG = 0

Public Const INTERNET_OPEN_TYPE_DIRECT = 1

Public Const INTERNET_OPEN_TYPE_PROXY = 3

Public Const INTERNET_DEFAULT_HTTP_PORT = 80

Public Const INTERNET_DEFAULT_HTTPS_PORT = 443

Public Const INTERNET_SERVICE_HTTP = 3

Public Const INTERNET_FLAG_RELOAD = &H80000000

Public Const INTERNET_FLAG_SECURE = &H800000

Public Const INTERNET_FLAG_KEEP_CONNECTION = &H400000

Public Const INTERNET_FLAG_NO_AUTH = &H40000

Public Const INTERNET_FLAG_FORMS_SUBMIT = &H40

Public Const INTERNET_OPTION_PROXY = 38

Public Const INTERNET_OPTION_SETTINGS_CHANGED As Long = 39

Public Const INTERNET_FLAG_ASYNC = &H10000000

Public Const INTERNET_FLAG_OFFLINE = &H1000000



'-------------------------------

Public Declare Function InternetOpen Lib "wininet.dll" Alias "InternetOpenA" (ByVal sAgent As String, ByVal lAccessType As Long, ByVal sProxyName As String, ByVal sProxyBypass As String, ByVal lFlags As Long) As Long

Public Declare Function InternetConnect Lib "wininet.dll" Alias "InternetConnectA" (ByVal hInternetSession As Long, ByVal sServerName As String, ByVal nServerPort As Integer, ByVal sUsername As String, ByVal sPassword As String, ByVal lService As Long, ByVal lFlags As Long, ByVal lContext As Long) As Long

Public Declare Function HttpOpenRequest Lib "wininet.dll" Alias "HttpOpenRequestA" (ByVal hHttpSession As Long, ByVal sVerb As String, ByVal sObjectName As String, ByVal sVersion As String, ByVal sReferer As String, ByVal something As Long, ByVal lFlags As Long, ByVal lContext As Long) As Long

Public Declare Function HttpSendRequest Lib "wininet.dll" Alias "HttpSendRequestA" (ByVal hHttpRequest As Long, ByVal sHeaders As String, ByVal lHeadersLength As Long, sOptional As Any, ByVal lOptionalLength As Long) As Integer

Public Declare Function InternetReadFile Lib "wininet.dll" (ByVal hFile As Long, ByVal sBuffer As String, ByVal lNumBytesToRead As Long, lNumberOfBytesRead As Long) As Integer

Public Declare Function InternetCloseHandle Lib "wininet.dll" (ByVal hInet As Long) As Integer



Public Function URLGetStrPr(sURL As String, Optional proxy As String = vbNullString, Optional port As Integer = 80, Optional sRefer As String = vbNullString, Optional Load As Boolean = True) As String

Dim hInternet As Long

Dim hConnect As Long

Dim hRequest As Long

Dim bSend As Integer

Dim sReadBuffer As String * 2048

Dim bDoLoop As Boolean

Dim bRead As Boolean

Dim lNumberOfBytesRead As Long

Dim sBuffer As String

Dim sB() As Byte

scUserAgent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2; WebMoney Advisor; .NET CLR 1.1.4322; InfoPath.2)"



sB() = StrConv(proxy, vbFromUnicode)



hInternet = InternetOpen(scUserAgent, INTERNET_OPEN_TYPE_PROXY, sB(0), "", INTERNET_FLAG_ASYNC)

er = GetLastError

If hInternet <> 0 Then 'открываем HTTP сессию

hConnect = InternetConnect(hInternet, Left$(sURL, InStr(sURL, "/") - 1), INTERNET_DEFAULT_HTTP_PORT, vbNullString, vbNullString, INTERNET_SERVICE_HTTP, 0, 0)

If hConnect <> 0 Then 'открываем запрос

hRequest = HttpOpenRequest(hConnect, "GET", Right(sURL, Len(sURL) - InStr(sURL, "/") + 1), "HTTP/1.1", sRefer, 0, INTERNET_FLAG_KEEP_CONNECTION, 0)

If hRequest <> 0 Then 'посылаем запрос

bSend = HttpSendRequest(hRequest, vbNullString, 0, vbNullString, 0)

If bSend Then 'создаём выходной файл

bDoLoop = Load

While bDoLoop

sReadBuffer = vbNullString

bRead = InternetReadFile(hRequest, sReadBuffer, Len(sReadBuffer), lNumberOfBytesRead)<br
vasjos вне форума  
Старый 21.01.2011, 16:36   #2
Игорь С
Новичок
 
Регистрация: 21.01.2011
Сообщений: 2
Игорь С пока не определено
По умолчанию Re: Помогите с WinInet API

Ответ на VBA есть.
Но нужен ли еще он ввиду давности темы
Игорь С вне форума  
Ads
Ответ
Опции темы

Похожие темы
Тема Автор
Формирование отчетов на основании шаблона Visual Basic
Добрый день! Есть вопрос такого содержания: есть табличка с наимеваниями товара для отгрузки покупателю, необходимо на основании ее и шаблона (который иногда видимо придется изменять) лежашего в...
slaykursk
Visual Basic Защитить от изобретательных юзверей лист
Как защитить лист от просмотра, но БЕЗ пароля (руководству "неудобно" пароль каждый раз вводить)? Sheets("Лист1").Visible = 2 не помогает, ибо лист можно отобразить из другой книги. Заранее...
Adviser-faa
VB2008: прога зависает при работе с HttpWebRequest Visual Basic
Нужно определить размеры трёх файлов. Есть форма с кнопкой и тремя текстбоксами. При нажатии на кнопку, прога обращается к серверу, получает размеры файлов и выводит их в текстбоксы. Но проблема в...
Period
Visual Basic Поворот изображения на определенный угол
Возможно ли повернуть изображение на определённый угол ? На форме есть image1, как повернуть картинку на 45 градусов ?
dieman
Автоматическое выполнение макроса Visual Basic
Доброго времени суток! Я разрабатываю плеер на Delphi для воспроизведения звуковой рекламы. Плейлист для плеера делаю в MS Access, т.к. файлы для воспроизведения должны выбираться из...
Xakand
Появление картинки при нажатии в листбоксе Visual Basic
Вот есть программа такого типа: http://img22.imageshack.us/img22/5786/56025916.jpg Нужно сделать, что бы при нажатии на запись в листбоксе появлялась картинка. Как это сделать? Я не знаю...
bosscs



Текущее время: 10:53. Часовой пояс GMT +4.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.

Рейтинг@Mail.ru