Автозаполнение форм

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 11.01.2008 (Пт) 8:48

могу я как то получить это значение в переменную не прибегая к Function GetText , а как нибудь быстрее ,что-нибудь вроде
Не знаю, что такое GetText, но можно так:
Код: Выделить всё
document.parentWindow.execScript "document.body.setAttribute('varMenu', menu);"
x = document.body.getAttribute("varMenu")
x = 123
document.body.setAttribute "varMenu", x
document.parentWindow.execScript "menu=document.body.getAttribute('varMenu');"
Лучший способ понять что-то самому — объяснить это другому.

novichok_07
Новичок
Новичок
 
Сообщения: 38
Зарегистрирован: 14.03.2007 (Ср) 6:53

Сообщение novichok_07 » 13.01.2008 (Вс) 2:55

Код: Выделить всё
document.parentWindow.execScript "document.body.setAttribute('varMenu', menu);"
x = document.body.getAttribute("varMenu")
это работает !

Код: Выделить всё
x = 123
document.body.setAttribute "varMenu", x
document.parentWindow.execScript "menu=document.body.getAttribute('varMenu');"
а это не срабатывает :( , если опять запросить значение по первому коду , тогда значение выдаст то что задавали - 123 , а в окне WebBrowser1 значение остаётся старым .... :(
Но всё равно , Antonariy большое тебе спасибо !

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

Сообщение Antonariy » 13.01.2008 (Вс) 9:02

Если возвращает 123, значит работает.
Лучший способ понять что-то самому — объяснить это другому.

novichok_07
Новичок
Новичок
 
Сообщения: 38
Зарегистрирован: 14.03.2007 (Ср) 6:53

Сообщение novichok_07 » 13.01.2008 (Вс) 12:32

получается что работает , не спорю ....
делаю запрос
Код: Выделить всё
RichTextBox2 = WebBrowser1.Document.documentElement.outerHTML
выдаёт, к примеру 50, запускаю код который вы дали ставлю Х=250 , при повторном запросе с Вашим кодом выдаёт уже Х=250 , но повторяю такой запрос
Код: Выделить всё
RichTextBox2 = WebBrowser1.Document.documentElement.outerHTML
там остаётся 50 :(

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

Сообщение Antonariy » 13.01.2008 (Вс) 13:15

"Там" это где? documentElement.outerHTML возвращает html-код всего документа.
Лучший способ понять что-то самому — объяснить это другому.

novichok_07
Новичок
Новичок
 
Сообщения: 38
Зарегистрирован: 14.03.2007 (Ср) 6:53

Сообщение novichok_07 » 13.01.2008 (Вс) 20:19

в WebBrowser1 загружаю страничку , она состоит из нескольких фрэймов , на этой странице описание переменных, описание функций на JavaScript и в конце :
Код: Выделить всё
</HEAD><FRAMESET id=fs_cntrl border=0 frameSpacing=0 rows=60,60%,* frameBorder=0><FRAME id=fr1 border=0 name=logo src="frame_logo2.php?sid=ae1441698e537c170ed8e7bb27e3c621" frameBorder=0 noResize scrolling=no onload1="_frame_load1(this);"><FRAME id=main_area border=0 name=main_area src="frame_area.php?sid=ae1441698e537c170ed8e7bb27e3c621" frameBorder=0 scrolling=no onload1="_frame_load1(this);"><FRAME id=chat border=0 name=chat src="heap.php?sid=ae1441698e537c170ed8e7bb27e3c621" frameBorder=0 scrolling=no onload1="_frame_load1(this);"></FRAMESET></HTML>
, это я достаю командой WebBrowser1.Document.documentElement.outerHTML
Я так думал что значение переменных на этой странице относятся ко всем входящим в страницу фрэймам, и думал меняя значение переменной на этой странице, все функции во фреймах будут использовать изменённые значения переменной, но стало быть ошибся :( , и ещё, если есть желание, подскажи как достучаться к объектам внутри этих фреймов, все фреймы с одного хоста ....

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

Сообщение Antonariy » 14.01.2008 (Пн) 10:03

В outerHTML скрипта не отражается текущее состояние переменных, только исходный загруженный код.
как достучаться к объектам внутри этих фреймов, все фреймы с одного хоста ....
document.frames(x).outerHTML
Лучший способ понять что-то самому — объяснить это другому.

ala-x
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 143
Зарегистрирован: 16.05.2009 (Сб) 16:03

Re:

Сообщение ala-x » 30.12.2018 (Вс) 17:15

Odrick писал(а):Тьфу, народ вы чего???

Код:
Option Explicit
Private Declare Function ShellExecute& Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal _
lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, _
ByVal nShowCmd As Long)
Const SW_SHOWNORMAL = 1
Private Declare Function GetDesktopWindow Lib "user32" () As Long
Private Sub Label1_Click()
Dim Ie As Object
Set Ie = CreateObject("InternetExplorer.Application")
Ie.Navigate "http:\\mentalprograms.narod.ru"
Ie.MenuBar = 1
Ie.ToolBar = 1
Ie.StatusBar = 1
Ie.AddressBar = 1
Ie.Visible = 1
End Sub


Как автозаполнить поля исходя из этого кода ?


Ie.Document.All("my_field").value = "My_Vale"

Что еще нужно для автозаполнения? :shock:

ПРивет всем!!! Почему то код выполняет заполнение только 1 раз.При повторной попытке ввести текст или нажать на кнопку-выдаёт ошибку Ie.Document.All("000").value = "000"

ger_kar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1957
Зарегистрирован: 19.05.2011 (Чт) 19:23
Откуда: Кыргызстан, Иссык-Куль, г. Каракол

Re: Автозаполнение форм

Сообщение ger_kar » 30.12.2018 (Вс) 19:33

Какую ошибку выдает?
Какая система? Версия Internet Explorer?
Неужели его (Internet Explorer) еще кто то использует...
Бороться и искать, найти и перепрятать

ala-x
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 143
Зарегистрирован: 16.05.2009 (Сб) 16:03

Re: Автозаполнение форм

Сообщение ala-x » 30.12.2018 (Вс) 21:00

Версия интернет эксплорер 11
при первом запуске срабатывает заполнение формы в чате и нажимается кнопка сенд
Вторично уже не получается.
Run time error 91
Object variable or with block variable not set
Windows 8.1 vb6

ala-x
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 143
Зарегистрирован: 16.05.2009 (Сб) 16:03

Re: Автозаполнение форм

Сообщение ala-x » 30.12.2018 (Вс) 21:01

ger_kar писал(а):Какую ошибку выдает?
Какая система? Версия Internet Explorer?
Неужели его (Internet Explorer) еще кто то использует...

А разве возможно в vb использовать другой браузер?

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16473
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Автозаполнение форм

Сообщение Хакер » 30.12.2018 (Вс) 23:58

ala-x писал(а):А разве возможно в vb использовать другой браузер?

А если «не в VB» — то что, сразу полно вариантов? На возможность использовать браузер в своих собственных целях влияет не язык, а тот факт, предоставляет ли браузер API для встраивания и манипулирования. IE предоставляют, а вот другие браузеры...

Проект Selenium как-то нашёл способ манипулировать разными браузерами, написание COM-совместимого драйвера для Selenium даст возможность всеми этими браузерами управлять из VB, VBA, VBScript-а, С, С++, Дельфи и откуда угодно.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16473
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Автозаполнение форм

Сообщение Хакер » 31.12.2018 (Пн) 0:01

ala-x писал(а):При повторной попытке ввести текст или нажать на кнопку-выдаёт ошибку Ie.Document.All("000").value = "000"
ala-x писал(а):Object variable or with block variable not set

Ну очевидно при второй попытки объект в сидентификатором «000» уже отсутствует в DOM-модели страницы, и свойство all возвращает Nothing. Удаляет его из DOM-модели, по всей видимости, собственный скрипт страницы.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

ala-x
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 143
Зарегистрирован: 16.05.2009 (Сб) 16:03

Re: Автозаполнение форм

Сообщение ala-x » 31.12.2018 (Пн) 0:09

предполагаете что в чате имя кнопок постоянно меняется?

ala-x
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 143
Зарегистрирован: 16.05.2009 (Сб) 16:03

Re: Автозаполнение форм

Сообщение ala-x » 31.12.2018 (Пн) 0:21

Хакер писал(а):
Проект Selenium как-то нашёл способ манипулировать разными браузерами, написание COM-совместимого драйвера для Selenium даст возможность всеми этими браузерами управлять из VB, VBA, VBScript-а, С, С++, Дельфи и откуда угодно.

может есть уже готовый драйвер для vb6?

Пред.

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

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

Сейчас этот форум просматривают: Google-бот, Mail.ru [бот] и гости: 12

    TopList