Проблема с содержимым webbrowser после POST

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

Проблема с содержимым webbrowser после POST

Сообщение incclub » 20.04.2005 (Ср) 17:41

Ребята ! Такая проблема ...

Есть такое:

Код: Выделить всё
TargetFrame = ""
flags = 14
Headers = "Content-Type: application/x-www-form-urlencoded" & vbCrLf

' Подготавливаю данные для POST

PostData = ".... Что то ....."
PostData = StrConv(PostData, vbFromUnicode)


' Отсылаю
WebBrowser1.Navigate "http://куда-то", flags, TargetFrame, PostData, Headers

' Жду завершения
Do Until WebBrowser1.ReadyState = READYSTATE_COMPLETE
DoEvents
Loop

' Загрузилась страница с содержанием 1

If InStr(1, Me.WebBrowser1.Document.body.innerhtml, "ищем submit") > 0 Then
         ' Допустим нашли - жмем
   me.WebBrowser1.Document.Forms(0).submit
End If


' Жду завершения
Do Until WebBrowser1.ReadyState = READYSTATE_COMPLETE
DoEvents
Loop

' Загрузилась страница с содержанием 2


Но ....

В содержимом Me.WebBrowser1.Document.body.innerhtml
осталось содержимое 1-й страницы !

А надо проанализировать на наличие определенного текста для дальнейших действий

Помогите пожалуйста ![/code]

incclub
Начинающий
Начинающий
 
Сообщения: 3
Зарегистрирован: 15.04.2005 (Пт) 18:08

Сообщение incclub » 22.04.2005 (Пт) 11:13

[b]FleX_2004[/b]

Спасибо !

Пожалуй действительно так и надо было сделать.
Просто изначально мне была поставлена задача (это прога для работы)
написать как можно быстрее и нагляднее, вот я взял за основу
Webbrowser. Но видимо поторопился. Тем более, что практически
одновременно открывается около 20 окон с ним, а он этого не любит.

Да, кстати и еще одно.

Столкнулся еще с такой проблемой. Данные из форм надо отправлять
с разных IP-адресов (на компах их по 20). 20 окон - 20 IP.
Зачем ? На другом конце сервер отслеживает IP (это чат, а я не спам ;-).
Взял за основу Winsock - проблема. LoacalIP только на чтение, т.е.
это свойство не изменить. В общем не подошел он мне. Взял комплект
конторолов от Catalist. Вроде все Ок, но уж слишком накручено.
Может посоветуете что попроще или получше ? ;-)

Еще раз спасибо !

FaKk2
El rebelde gurú
El rebelde gurú
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Сообщение FaKk2 » 23.04.2005 (Сб) 3:59

FleX_2004
Вот смотри, мало того что ты дал человеку глупый совет, так и толком не ответил. Webbrowser достаточно хорош для решения задач.

incclub
У тебя страница на экране обновляется? После посылки формы?
Для получения ответа надо продемонстрировать качества, позволяющие стать компетентным — внимательность, вдумчивость, наблюдательность, желание активно участвовать в выработке решения.

xolod
Гуру
Гуру
 
Сообщения: 1162
Зарегистрирован: 15.01.2004 (Чт) 0:42
Откуда: Moscow

Сообщение xolod » 25.04.2005 (Пн) 18:16

[оффтоп]
Как дети малые, ну е-мое.
[/]

Constant ERROR_SUCCESS deprecated. I'm so happy.
Программирование и дизайн – http://www.macrointellect.ru

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

Сообщение alibek » 25.04.2005 (Пн) 18:54

Я так думаю, что у тебя просто не срабатывает If InStr(1, Me.WebBrowser1.Document.body.innerhtml, "ищем submit") > 0.
Вследствии этого не выполняется me.WebBrowser1.Document.Forms(0).submit и проскакивает Do Until WebBrowser1.ReadyState = READYSTATE_COMPLETE, потому у тебя и остается первоначальное содержимое.
Советую перебирать формы (коллекция Forms), а внутри каждой формы перебирать кнопки (помоему Buttons) и проверять, является она Submit. Если да, то отправить данные и ждать завершения загрузки внутри данного условия (а не за пределами, как у тебя).

А советы выкинуть нафиг WebBrowser и кодить на API не слушай.
Для программы важна эффективность, а не понты.
Lasciate ogni speranza, voi ch'entrate.

Snussi
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 151
Зарегистрирован: 21.07.2004 (Ср) 18:08
Откуда: Москва, Россия

Сообщение Snussi » 26.04.2005 (Вт) 9:08

Тогда уж лучше, имхо, использовать InternetTransfer control.

FaKk2
El rebelde gurú
El rebelde gurú
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Сообщение FaKk2 » 26.04.2005 (Вт) 9:56

FleX_2004
Зачем изобретать колесо?

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

incclub
Начинающий
Начинающий
 
Сообщения: 3
Зарегистрирован: 15.04.2005 (Пт) 18:08

Сообщение incclub » 26.04.2005 (Вт) 12:53

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

Как раз прокси в моем случае точно не катят.
Нужно использовать реальные айпи компьютеров.
Поэтому в конечной части проги я и использую сокеты.
А крыша у Виндов не едет ;-) Работает все нормально

FleX_2004 писал(а):2 FAKK2 а он по идее немного мутит для что нибудь нехорошего ну или перебор пасса итп... так что ему НИКАК веббровзер не подходит!


Для таких вещей существуют уже изобретенные велосипеды ;-)

AccessDiver например и ему подобные

Для таких вещей действительно веббровзер не подходит.

FAKK2 писал(а):FleX_2004
incclub
У тебя страница на экране обновляется? После посылки формы?


Да обновляется. Но...

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

Поймите правильно, моя прога совсем не то что Вы думаете ;-)
Я имею ввиду не спам и не какие то регистрилки в поисковиках.
Это клиент чата. И дабы упростить операторам жизнь, сами представте
заполнить по 5 стариниц в 20 окнах, и пишется эта программа.
Ну и контроль коннекта конечно програмный ... реагирование на события и.т.п.

Ну вот сегодня выяснил странную вещь. Не отпределяется "WebBrowser1_DocumentComplete"
только для одной (локальной) страницы ту которую редактировали в начале.
Все остальное что грузится с вэба - все Ок.

Правда если засунуть обработку страниц в таймер, то распознает и локальную,
но таймер тоже хочу выкинуть ... несерьезно ...

P.s. Все это нужно для работы. Я сисадмин и программер по совместительству ;-)


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

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 69

    TopList