Взаемодействие с Web

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

Взаемодействие с Web

Сообщение HaSH » 12.01.2006 (Чт) 13:21

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

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 12.01.2006 (Чт) 13:25

Через объектную модель HTML DOM :)

HaSH
Новичок
Новичок
Аватара пользователя
 
Сообщения: 40
Зарегистрирован: 08.12.2005 (Чт) 12:24
Откуда: г. Киев

Сообщение HaSH » 12.01.2006 (Чт) 13:27

как я сам не догадался....

если можно хелп какой нить, или пример...

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 12.01.2006 (Чт) 14:20


Odrick
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 503
Зарегистрирован: 28.09.2003 (Вс) 2:04

Сообщение Odrick » 12.01.2006 (Чт) 17:44

Конкретнее вопрос ставь. Что именно нужно? Создавать объект IE умееш? Изменять адрес? Работать с коллекцией All? Что именно вызывает затруднения?
То, что для одних константа, для других только переменная...

Odrick
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 503
Зарегистрирован: 28.09.2003 (Вс) 2:04

Сообщение Odrick » 12.01.2006 (Чт) 17:51

А вообще сходи-ка вот сюда: http://bbs.vbstreets.ru/viewtopic.php?t=22128 Думаю очень многое станет сразу понятным... ;)
То, что для одних константа, для других только переменная...

HaSH
Новичок
Новичок
Аватара пользователя
 
Сообщения: 40
Зарегистрирован: 08.12.2005 (Чт) 12:24
Откуда: г. Киев

Сообщение HaSH » 12.01.2006 (Чт) 18:01

Немного разобрался. Остался еще один вопрос:
Есть обьек Select, в нем children обьеты option (тобиш комболист и пункты в нем). как мне выбрать один из пунктов.

Во наброски:

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

For Each objSelect In webdoc.getElementsByName("port") 'получаю список по имени
    Set Acollection = objSelect.children 'коллекция пунктов списка
        For Each objOption In Acollection 'перебор по пунктам
            If objOption.getAttribute("value") = 81 Then ' нахожу нижный пункт
                'здесь нужно кликнуть по нем. но как???
            End If
        Next
Next

Odrick
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 503
Зарегистрирован: 28.09.2003 (Вс) 2:04

Сообщение Odrick » 12.01.2006 (Чт) 18:20

Так ты определись что тебе нужно-то: выбрать один из пунктов или кликнуть? Если выбрать, то весьма просто:

webdoc.All("port").selectedIndex = 2, если webdoc у тебя Document, конечно...

Клик не сложнее. Исходя из твоего кода:

objOption.Click :D

И вообще Quick Watch рулит...
То, что для одних константа, для других только переменная...

HaSH
Новичок
Новичок
Аватара пользователя
 
Сообщения: 40
Зарегистрирован: 08.12.2005 (Чт) 12:24
Откуда: г. Киев

Сообщение HaSH » 12.01.2006 (Чт) 18:33

Не работает :(
Елемент действительно выберается но... ничего не происходит.
На сколько я понял список обрабатывает событие OnChange

HaSH
Новичок
Новичок
Аватара пользователя
 
Сообщения: 40
Зарегистрирован: 08.12.2005 (Чт) 12:24
Откуда: г. Киев

Сообщение HaSH » 12.01.2006 (Чт) 18:51

Все. Кликнул. нужно так:
Код: Выделить всё
    objSelectEl.selectedIndex = 1
    objSelectEl.FireEvent ("onchange")


Где objSelectEl As IHTMLSelectElement

Odrick
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 503
Зарегистрирован: 28.09.2003 (Вс) 2:04

Сообщение Odrick » 12.01.2006 (Чт) 18:53

Блин.... Ну а если подумать? Подключить, например, Microsoft HTML Object Library, полазить по методам HTMLSelectElement'а? Воспользоваться Quick Watch в конце-концов? Ну вот, наслаждайся:

webdoc.All("port").FireEvent "onchange"

Если там действительно обработка onchange происходит ;)
То, что для одних константа, для других только переменная...

Odrick
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 503
Зарегистрирован: 28.09.2003 (Вс) 2:04

Сообщение Odrick » 12.01.2006 (Чт) 18:55

:) Вооот. Пока писал, ты уже сам догадался. Молодец ;)
То, что для одних константа, для других только переменная...

HaSH
Новичок
Новичок
Аватара пользователя
 
Сообщения: 40
Зарегистрирован: 08.12.2005 (Чт) 12:24
Откуда: г. Киев

Сообщение HaSH » 13.01.2006 (Пт) 19:39

Кто-нить знает как наверняка проверить загрузилась страница или нет? Свойство Busy врет... Насколько я понял, проблема в том что после загрузки каркаса страницы(busy становится false) подгружаются данные с пом. скриптов. Они то мне и нужны... Сейчас просто делаю паузу между моментом когда busy стоновитя false и обработкой даных, но помоему это через ж...у.

Odrick
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 503
Зарегистрирован: 28.09.2003 (Вс) 2:04

Сообщение Odrick » 13.01.2006 (Пт) 20:06

Гм. Попробуй поюзать readyState.
То, что для одних константа, для других только переменная...


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

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

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

    TopList