Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: Заполнения веб форм при помащи WebBrowser Добавлено: 22.02.08 14:09  

Автор вопроса:  mannaz2007
Народ помогите как запомнить веб форму а потом отправить даные при помощью WebBrowser

Ответить

  Ответы Всего ответов: 9  

Номер ответа: 1
Автор ответа:
 AntiXaker



Вопросов: 1
Ответов: 24
 Web-сайт: www.Bairam.biz
 Профиль | | #1
Добавлено: 23.02.08 22:38
Этому надо целою статью посвещать!
P.S. Проще будет отправить при помощи winsock.

Ответить

Номер ответа: 2
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #2 Добавлено: 23.02.08 22:49
да нет, достаточно открыть справочник по DOM. Вот функция из одного давнешнего проекта моего, она именно заполняла формы в WB. Правда писал на VB6, но я недумаю что там большая будет разница.

Public Type PostVar
    sPole As String
    sVal  As String
End Type

'========================================================================
' * Заполнение любых TextBox'ов, в любой форме, на любом фрейме :)
'   (Работа с элементами)

' WB - Объект WebBrowser
' sFrame - Имя (или индекс) фрейма в котором заполняем поля (vbNullString если нет фрейма)
' sFormName - Имя (или индекс) формы в которой заполняем поля
' pv - Массив структур полей и их значений
' Submit - отправлять ли форму полсе заполнения (По умолчанию False)

Public Sub SubmitForm(WB As WebBrowser, sFrame As String, sFormName, pv() As PostVar, Optional Submit As Boolean = False)
    On Error GoTo e
    Dim i As Byte
    Dim From, obj, o
    
    Call Sleep(200&;)
    
    ClearError
    If Trim$(sFormName) = "" Then sFormName = "#1"
    
    DoEvents: DoEvents
    Call Sleep(200&;)
    
    'Устанавливаем Document у страницы
    
    If Trim$(sFrame) = "" Then 'Если фрейма нет, Document наследуется от WB
        Set o = WB.Document
    Else                       'Если есть...
        'Проверяем имя или индекс указан в качестве фрейма
        If InStr(1, sFrame, "#", 1) > 0 Then    'Если индекс
            Set o = WB.Document.frames(Val(Replace(sFrame, "#", "";))).Document 'Наследуем Document по индексу фрейма
        Else    'Если имя
            Set o = WB.Document.frames.Item(CStr(sFrame)).Document    'Наследуем Document по имени фрейма
        End If
    End If
    
    'Dcoument фрейма (или без него) на этом этапе определён
    'Определяем форму, наследуя объекст o (Он является Document)
 
    If InStr(1, sFormName, "#", 1) > 0 Then
        Set From = o.Forms(Val(Replace(sFormName, "#", "";)))
    Else
        Set From = o.Forms.Item(CStr(sFormName))
    End If
    
    'Заполняем элементы в определённом фрейме и форме
    
    For i = LBound(pv) To UBound(pv)
        If Trim$(pv(i).sPole) <> "" Then
            Set obj = From.elements.Item(CStr(pv(i).sPole))
            obj.Value = pv(i).sVal
        End If
    Next i
    
    Call Sleep(100&;)
    If Submit Then From.Submit  'Сабмитим форму
    Call Sleep(100&;)
    
    Exit Sub
e:
    LastErrorDescription = err.Description
    LastErrorNumber = err.Number
End Sub

Ответить

Номер ответа: 3
Автор ответа:
 mannaz2007



Вопросов: 1
Ответов: 5
 Профиль | | #3 Добавлено: 24.02.08 16:57
Ну тогда напиши! Толька не надо писать что типа таво! user=mannaz&password=12414 Это не прокатывает

Ответить

Номер ответа: 4
Автор ответа:
 mannaz2007



Вопросов: 1
Ответов: 5
 Профиль | | #4 Добавлено: 24.02.08 17:01
да нет, достаточно открыть справочник по DOM. Вот функция из одного давнешнего проекта моего, она именно заполняла формы в WB. Правда писал на VB6, но я недумаю что там большая будет разница.


дай ссылочку или кинь на mannaz2007@mail.ru


Если у каво ещё есть придлажения помагите!

Ответить

Номер ответа: 5
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #5 Добавлено: 24.02.08 18:35
пажалуста пеши без ашипок ета сильна расдрожает миня!!!

Ответить

Номер ответа: 6
Автор ответа:
 mannaz2007



Вопросов: 1
Ответов: 5
 Профиль | | #6 Добавлено: 24.02.08 19:36
пажалуста пеши без ашипок ета сильна расдрожает миня!!!


Говорят что есть такая функция заполнения толька я не магу догнать!" как? вот этим? помогите! WebBrowser1.Document.Forms. Мне б что нибуть бы из vb.net

Ответить

Номер ответа: 7
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #7 Добавлено: 24.02.08 20:17
я тоже ниче не мАгу!!! памагите!!!!!!!!!!1

Ответить

Номер ответа: 8
Автор ответа:
 mannaz2007



Вопросов: 1
Ответов: 5
 Профиль | | #8 Добавлено: 25.02.08 20:08
Всё нашол как запонять поля осталось толька зделать эмуляцию по кнопке отправке

Ответить

Номер ответа: 9
Автор ответа:
 mannaz2007



Вопросов: 1
Ответов: 5
 Профиль | | #9 Добавлено: 27.02.08 14:49
Этому надо целою статью посвещать!
P.S. Проще будет отправить при помощи winsock.



У меня в 4 строчки получилась и не надо чтатью посвещать!
Вот народ пользуетесь

 WB.Document.GetElementById("kerio_username";).InnerText = "admin"
        WB.Document.GetElementById("kerio_password";).InnerText = "251989"
        WB.Document.GetElementById("man";).Focus()
        ' WB.Document.Forms("ach";).All.Item("man";).InvokeMember("click";)
        WB.Document.All.Item("man";).InvokeMember("click";)

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам