Эмуляция действий в WebBrowser

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

Эмуляция действий в WebBrowser

Сообщение djalex777 » 19.02.2008 (Вт) 22:46

На форме есть компонент WebBrowser в котором открыта html страница. На этой странице есть кнопочка для подтверждения данных. Можно ли программно вызвать событие, например, нажатия этой кнопки? Если это возможно, объясните пожалуйста, как

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

Сообщение Antonariy » 20.02.2008 (Ср) 9:00

Лучший способ понять что-то самому — объяснить это другому.

djalex777
Постоялец
Постоялец
 
Сообщения: 461
Зарегистрирован: 23.03.2006 (Чт) 16:02

Сообщение djalex777 » 20.02.2008 (Ср) 11:58

Спасибо. С html понятно. Т.е. если у нас есть кнопочка с id, например, button, то делаем так - document.all("button").click()
А вот как быть, если надо нажать кнопочку, которая присутствует в неком flash-объекте?

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

Сообщение Antonariy » 20.02.2008 (Ср) 13:31

Подключай компонент Shockwave Flash и изучай его методы.
Лучший способ понять что-то самому — объяснить это другому.

djalex777
Постоялец
Постоялец
 
Сообщения: 461
Зарегистрирован: 23.03.2006 (Чт) 16:02

Сообщение djalex777 » 21.02.2008 (Чт) 0:34

В html события вызываются через метод
FireEvent, т.е. например, для открытого документа действует метод

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

...
Dim doc As HTMLDocument
Dim doc_event As IHTMLEventObj2
Set doc_event = doc.CreateEventObject
doc_event.clientX = 717
doc_event.clientY = 123
doc.FireEvent "onclick", doc_event


Эмулируется событие, "щелчок кнопки мыши" в заданной позиции у объекта document. Только для того объекта у которого вызывается метод.
Посмотрел методы Shockwave Flash, ничего подобного не обнаружил.
Через SendMessage послать сообщение Flash о нажатии клавиши не возможно (Или я не прав?)
Остается способ через вызов mouse_event, но это уже работа с самой мышью. Неужели нет других способов?

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

Сообщение Antonariy » 21.02.2008 (Чт) 10:11

У ocx'а есть функция CallFunction, возможно с ее помощью получится вызвать обработчик клика в ролике. Однако я не уверен, как устроен флеш не знаю.
Лучший способ понять что-то самому — объяснить это другому.

djalex777
Постоялец
Постоялец
 
Сообщения: 461
Зарегистрирован: 23.03.2006 (Чт) 16:02

Сообщение djalex777 » 21.02.2008 (Чт) 11:03

На сколько я понял CallFunction это функция вызывающая у flash событие CallFunction. Т.е. для того, чтобы из флэш можно было выполнить внешние функции.

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

Сообщение Antonariy » 21.02.2008 (Чт) 12:42

У ocx нет события CallFunction.
Лучший способ понять что-то самому — объяснить это другому.


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

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

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

    TopList  
cron