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

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Rostik Ultra (2)
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 159
Зарегистрирован: 10.05.2005 (Вт) 2:41
Откуда: Антарктическая республика

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

Сообщение Rostik Ultra (2) » 24.12.2005 (Сб) 8:02

Как заполнить поля в гостевых или на досках объявлений ?
Мой сайт http://mentalprograms.narod.ru/ - бесплатные развивающие программы

Шнурок
Постоялец
Постоялец
 
Сообщения: 371
Зарегистрирован: 12.11.2004 (Пт) 19:28
Откуда: Санкт-Петербург

Сообщение Шнурок » 24.12.2005 (Сб) 16:58

Код: Выделить всё
Private Sub Timer1_Timer()
On Error Resume Next
    a = "http://www.narod.ru/guestbook/?owner=" & Int(Rnd * 100000)
    w1.Navigate2 a
    Timer1.Enabled = False
End Sub

Private Sub Timer2_Timer()
If w1.LocationName = "404" Then Command4_Click
End Sub

Private Sub w1_NavigateComplete2(ByVal pDisp As Object, URL As Variant)
On Error Resume Next
    If w1.Busy = False Then
        w1.Document.All("your_name").Value = t1
        w1.Document.All("your_url").Value = t2
        w1.Document.All("your_message").Value = t3
        w1.Document.Forms(0).submit
        Timer1.Enabled = True
    End If
End Sub
Private Sub Command4_Click()
On Error Resume Next
    a = "http://www.narod.ru/guestbook/?owner=" & Int(Rnd * 100000)
    w1.Navigate2 a
End Sub

t1 t2 t3 - текстбоксы
02.01.2004

Rostik Ultra (2)
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 159
Зарегистрирован: 10.05.2005 (Вт) 2:41
Откуда: Антарктическая республика

Сообщение Rostik Ultra (2) » 25.12.2005 (Вс) 2:49

Шнурок

Код не работает, КСТАТИ я не юзаю дополнительные контролы для открытия страницы в броузере :

Код: Выделить всё
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


Как автозаполнить поля исходя из этого кода ?
Мой сайт http://mentalprograms.narod.ru/ - бесплатные развивающие программы

RUSYA
Обычный пользователь
Обычный пользователь
 
Сообщения: 84
Зарегистрирован: 22.07.2005 (Пт) 20:17
Откуда: Харьков

Сообщение RUSYA » 25.12.2005 (Вс) 6:13

винсок + post запрос
А как оно на самом деле - Х.З. !

Rostik Ultra (2)
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 159
Зарегистрирован: 10.05.2005 (Вт) 2:41
Откуда: Антарктическая республика

Сообщение Rostik Ultra (2) » 25.12.2005 (Вс) 7:09

RUSYA писал(а):винсок + post запрос


А без дополнительных контролов нельзя ?
Мой сайт http://mentalprograms.narod.ru/ - бесплатные развивающие программы

Шнурок
Постоялец
Постоялец
 
Сообщения: 371
Зарегистрирован: 12.11.2004 (Пт) 19:28
Откуда: Санкт-Петербург

Сообщение Шнурок » 25.12.2005 (Вс) 7:15

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

dim id as long
dim msg as string, nic as string, url as string
id = Int(Rnd * 100000)
Winsock1.SendData "POST /guestbook/?owner=id&your_message="&msg&"&your_url="&url&"&your_name="&nic&" HTTP/1.1" & vbCrLf
Winsock1.SendData "Host: www.narod.ru" & vbCrLf
Winsock1.SendData vbCrLf
'или (for i=0 to 10000000 ... id=i ... next)  :D  :lol:  :D

скорее всего тут есть ошибка и не одна :roll:
Последний раз редактировалось Шнурок 25.12.2005 (Вс) 9:36, всего редактировалось 1 раз.
02.01.2004

Rostik Ultra (2)
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 159
Зарегистрирован: 10.05.2005 (Вт) 2:41
Откуда: Антарктическая республика

Сообщение Rostik Ultra (2) » 25.12.2005 (Вс) 8:34

А без дополнительных контролов нельзя ?
Мой сайт http://mentalprograms.narod.ru/ - бесплатные развивающие программы

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

Сообщение alibek » 25.12.2005 (Вс) 13:03

Можно.
Через API-шные сокеты.
Lasciate ogni speranza, voi ch'entrate.

Rostik Ultra (2)
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 159
Зарегистрирован: 10.05.2005 (Вт) 2:41
Откуда: Антарктическая республика

Сообщение Rostik Ultra (2) » 26.12.2005 (Пн) 2:28

alibek писал(а):Можно.
Через API-шные сокеты.


Приведи плз пример кода

ЗЫ : как кстати потм закрыть вызванное ранее окно браузера
Мой сайт http://mentalprograms.narod.ru/ - бесплатные развивающие программы

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

Сообщение alibek » 26.12.2005 (Пн) 11:08

Примеры в поиске.

P.S. Причем тут сокеты и браузер?
Lasciate ogni speranza, voi ch'entrate.

DirectXManiac
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1543
Зарегистрирован: 03.11.2005 (Чт) 13:32
Откуда: из DirectX SDK

Сообщение DirectXManiac » 26.12.2005 (Пн) 11:34

НИЧЕГО CЕБЕ НАРОД!СПАСИБО - ЁПТ.ПОЖАЛУЙСТА - ВЫРУЧАЙТЕ.
НЕХОРОШО
З.Ы Было бы другое отношение - помогли бы, а так извини "ёпт" :lol:
#define ROFL 0xDDDD

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

Сообщение Odrick » 26.12.2005 (Пн) 16:48

Тьфу, народ вы чего???

Код:
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:
То, что для одних константа, для других только переменная...

Rostik Ultra (2)
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 159
Зарегистрирован: 10.05.2005 (Вт) 2:41
Откуда: Антарктическая республика

Сообщение Rostik Ultra (2) » 27.12.2005 (Вт) 2:53

Примеры в поиске.

Не нашёл то что нужно

Odrick
Код: Выделить всё
Ie.Document.All("my_field").value = "My_Vale"

не работает

ЗЫ : DirectXManiac Какие претензии ?
Мой сайт http://mentalprograms.narod.ru/ - бесплатные развивающие программы

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

Сообщение Odrick » 27.12.2005 (Вт) 3:23

Rostik Ultra (2) писал(а):Odrick
Код: Выделить всё
Ie.Document.All("my_field").value = "My_Vale"

не работает


Вот чудак человек... (не в обиду).

Держи пример с использованием твоего подхода к работе с IE и автозаполнения, как я и говорил. Пример открывает Google, заполняет нужные поля и нажимает кнопу "Поиск".
Вложения
HTMLFill2.zip
Пример автозаполнения
(1.41 Кб) Скачиваний: 313
То, что для одних константа, для других только переменная...

Rostik Ultra (2)
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 159
Зарегистрирован: 10.05.2005 (Вт) 2:41
Откуда: Антарктическая республика

Сообщение Rostik Ultra (2) » 27.12.2005 (Вт) 4:37

Odrick Спасибо за код, а какое на этой странице http://www.narod.ru/guestbook/?owner=23452125 имя кнопки ?? как блин её нажать ?

ЗЫ : как получить hwnd открывшегося с помощью этого кода окна (чтобы потом его закрыть)
Мой сайт http://mentalprograms.narod.ru/ - бесплатные развивающие программы

DirectXManiac
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1543
Зарегистрирован: 03.11.2005 (Чт) 13:32
Откуда: из DirectX SDK

Сообщение DirectXManiac » 27.12.2005 (Вт) 11:45

ГЫ!В поиск, не по форуму так по статьям в интернете! :wink:
#define ROFL 0xDDDD

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 27.12.2005 (Вт) 12:50

Rostik Ultra (2)
Какое имя кнопки? Жмёшь по открытому документу левой кнопочкой и видишь "Просмотр HTML кода", тебе туда. Находишь твм форму и смотришь у кого какие имена.
Изображение

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

Сообщение Odrick » 27.12.2005 (Вт) 13:28

Rostik Ultra (2), ты хоть компоненты иногда просматривай... Да их свойства и методы. Закрытие окна: Ie.Quit. В крайнем случае хендл получить тоже элементрано: Ie.HWND :lol:

По поводу имен объектов на HTML-страницах - в DOM тебе прямая дорога. Учи HTML и все станет для тебя понятно ;) На крайняк возьми мой HTML Spy: http://bbs.vbstreets.ru/viewtopic.php?t=20244 или другой подобный плагин.
То, что для одних константа, для других только переменная...

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

Сообщение Antonariy » 27.12.2005 (Вт) 14:33

Rostik Ultra (2)
У кнопки может не быть имени или id. Если тебе всего лишь нужно отправить форму, то делай Document.Forms(0).Submit
Лучший способ понять что-то самому — объяснить это другому.

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

Сообщение Odrick » 27.12.2005 (Вт) 15:20

Именно. Ну и точно так же, если какой-нить объект не имеет имени или id, то доступ к нему можно получить по его порядковому номеру в коллекции All. Например:

Ie.Document.All(25).value = "MyValue"
То, что для одних константа, для других только переменная...

Rostik Ultra (2)
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 159
Зарегистрирован: 10.05.2005 (Вт) 2:41
Откуда: Антарктическая республика

Сообщение Rostik Ultra (2) » 28.12.2005 (Ср) 3:50

keks-n писал(а):Rostik Ultra (2)
Какое имя кнопки? Жмёшь по открытому документу левой кнопочкой и видишь "Просмотр HTML кода", тебе туда. Находишь твм форму и смотришь у кого какие имена.


Это я знал и до этого, нажал, открыл, просмотрел, не нашел , поэтому и спросил

Odrick спасибо за Ie.Quit

Antonariy спасибо за Document.Forms(0).Submit
Мой сайт http://mentalprograms.narod.ru/ - бесплатные развивающие программы

Rostik Ultra (2)
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 159
Зарегистрирован: 10.05.2005 (Вт) 2:41
Откуда: Антарктическая республика

Сообщение Rostik Ultra (2) » 01.01.2006 (Вс) 7:30

А как осуществить поиск слов на открытой странице ? Document.Forms(0).Search или Ie.Search (или что то вроде этого)
Мой сайт http://mentalprograms.narod.ru/ - бесплатные развивающие программы

neic
Жираф
Жираф
 
Сообщения: 492
Зарегистрирован: 13.02.2005 (Вс) 23:44
Откуда: Сланцы

Сообщение neic » 01.04.2006 (Сб) 17:38

Народ! А если имя кнопки незивестно и Document.Forms(0).Submit не помогает что делать?

Kovu
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 924
Зарегистрирован: 29.04.2005 (Пт) 17:38

Сообщение Kovu » 01.04.2006 (Сб) 21:06

neic
Пить йод. бутылками.
Если всё делать своими ручками, они скоро отвалятся !

neic
Жираф
Жираф
 
Сообщения: 492
Зарегистрирован: 13.02.2005 (Вс) 23:44
Откуда: Сланцы

Сообщение neic » 02.04.2006 (Вс) 0:15

Блин... А ты что-нить придумал на эту тему? или тоже мучаешься?

Kovu
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 924
Зарегистрирован: 29.04.2005 (Пт) 17:38

Сообщение Kovu » 02.04.2006 (Вс) 12:10

neic
Понимаешь, мне это было нужно один раз для заполнения БД пользователей форума. И соответственно узнать имя поля было легко, заглянув в хтмл код. А в чем выражается неизвестность названия у тебя?
Если всё делать своими ручками, они скоро отвалятся !

neic
Жираф
Жираф
 
Сообщения: 492
Зарегистрирован: 13.02.2005 (Вс) 23:44
Откуда: Сланцы

Сообщение neic » 02.04.2006 (Вс) 13:24

Ну на сайте много конопок и всё как я понял имеют одно название(или калсс), корче шлю Submitm, а он мне какую-то хрень выдаёт.

П.с. это поповоду хаялвы в сети.

Kovu
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 924
Зарегистрирован: 29.04.2005 (Пт) 17:38

Сообщение Kovu » 02.04.2006 (Вс) 15:11

Так раз тебе известно содержимое страницы, посмотри название нужной кнопки. Оно уникальное(класс может быть и одинаковым для разных элемнтов, но не название)
Если всё делать своими ручками, они скоро отвалятся !

neic
Жираф
Жираф
 
Сообщения: 492
Зарегистрирован: 13.02.2005 (Вс) 23:44
Откуда: Сланцы

Сообщение neic » 02.04.2006 (Вс) 18:10

Дык если бы название было, то и небылобы проблем, а класс у всех общий!

Kovu
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 924
Зарегистрирован: 29.04.2005 (Пт) 17:38

Сообщение Kovu » 02.04.2006 (Вс) 20:44

neic
дай ссылку на страницу :?
Если всё делать своими ручками, они скоро отвалятся !

След.

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

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

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

    TopList