Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: WebBrowser: управление страницей..=\ Добавлено: 25.07.06 12:36  

Автор вопроса:  i0ngunn3r
Здравствуйте)
Есть интернет-страница, загруженная в WebBrowser (он же MS Internet Controls).
Есть куча текстбоксов (и на странице в WB, и на форме).
Можно ли как-нибудь перенести содержимое из текстбоксов формы в текстбоксы страницы?
(Сейчас ужасно мучаюсь - использую код кусками
(Например:
temp = "<input type=""hidden"" name=""post_id"" value=""" + txtPostID + ">"
)
Далее эта страница сохраняется (например в c:\temp.htm), открывается в WebBrowser'e уже отредактированной, и с заполненными полями, а затем удаляется.

И еще - можно как-либо сэмулировать нажатие кнопки в коде (кнопка, естественно, имеет имя..) страницы WB?
А точнее - чтобы при нажатии обычной кнопки CommandButton как бы нажималась нужная кнопка на странице, открытой в браузере?

Фуух. Надеюсь, вы меня поняли)))
Заранее спасибо :)

Ответить

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

Номер ответа: 1
Автор ответа:
 VβÐUηìt



Вопросов: 246
Ответов: 3333
 Web-сайт: смекаешь.рф
 Профиль | | #1
Добавлено: 25.07.06 12:52
можно как-либо симулировать нажатие кнопки в коде (кнопка, естественно, имеет имя..) страницы WB?

Попробуй SendKeys воспользоваться

Ответить

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



Вопросов: 11
Ответов: 30
 Профиль | | #2 Добавлено: 25.07.06 13:55
Эмм.. Вы мну неправильно поняли :) (а может, я Вас.. Но я помню, что sendkeys эмулирует нажатие кнопок на клаве. или не только? o_O)
Кнопки, в смысле не на клаве, а на интернет-странице.. Вот, например, в ответе на Ваше сообщение - кнопки с тегами, кнопка "Сохранить".
Если я эту страницу открою в webbrowser'e, я смогу как-нибудь сторонне отправить это сообщение, не нажимая напрямую кнопку "Сохранить"?))

Ответить

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



ICQ: 219571279 

Вопросов: 34
Ответов: 486
 Профиль | | #3 Добавлено: 25.07.06 14:38
SendKeys эмулирует нажатие клавиши на клаве...
Если на активной кнопке в окне нажать Enter, то кнопка нажмется, это равносильно клику мышкой по этой кнопке, а можно SendKeys Chr(vbKeyEnter).

Ответить

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



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #4 Добавлено: 25.07.06 15:33
Если на активной кнопке в окне нажать Enter, то кнопка нажмется

Для нажатия активной кнопки с клавиатуры всегда использовался пробел. Enter нажимает кнопку со свойством Default = True.

Ответить

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



ICQ: 219571279 

Вопросов: 34
Ответов: 486
 Профиль | | #5 Добавлено: 25.07.06 15:54
Ну... Да... Чуть-чуть не точно выразился, но... Enter не нажимает кнопку (графически), а пробел как мышка, можно зажать и держать, и действие произойдет если отпустишь. Если зажмешь Enter, то кнопка нажмется несколько раз.
Попробуй кинь на форму три кнопки, а при нажатии каждой поставь MsgBox... и пощелкай.

Ответить

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



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #6 Добавлено: 25.07.06 16:07
Спасибо, не буду :) Лучше повторюсь - для нажатия пользоваться только пробелом. Enter корректно сработает только если фокус стоит на другой кнопке, если по ошибке он встанет на другой контрол - эффект трудно предсказать (зависит от дефолтовой кнопки, как правило это закрытие окна). Это правильный стиль работы с GUI.

Ответить

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



ICQ: 219571279 

Вопросов: 34
Ответов: 486
 Профиль | | #7 Добавлено: 25.07.06 16:21
Ладно, спорить со старшими не буду:-))))
Но у меня и Ентер нормально пашет........

Ответить

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



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #8 Добавлено: 25.07.06 16:34
Пахать он и будет. Но если нажмешь случано не там где надо - пипец. Посему для такой цели Enter юзать клинически не следует ;)

Ответить

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



ICQ: 219571279 

Вопросов: 34
Ответов: 486
 Профиль | | #9 Добавлено: 25.07.06 16:41
А что может произойти???
Не разу не замечал, Всегда Enterом тыкаю...

Ответить

Номер ответа: 10
Автор ответа:
 avdey



ICQ: 219571279 

Вопросов: 34
Ответов: 486
 Профиль | | #10 Добавлено: 25.07.06 16:43
А насчет
Но если нажмешь случано не там где надо - пипец

то в розетку пальцы не сувать с детства приучился (на горьком опыте):-))))))))))))

Ответить

Номер ответа: 11
Автор ответа:
 LamerOnLine



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #11 Добавлено: 25.07.06 16:53
Поясню. Для нормальных людей нормальные диалоговые окна содержат две особенные кнопки (обычно это OK и Cancel). Так вот, для их определения есть два свойства - Default и Cancel. И, соответственно, зарезервированы две кнопки - Enter и Esc. Тыкать их всегда - верный признак ламерства :)))

Ответить

Номер ответа: 12
Автор ответа:
 avdey



ICQ: 219571279 

Вопросов: 34
Ответов: 486
 Профиль | | #12 Добавлено: 25.07.06 17:09
О... Теперь понятно... Умолкаю)))))))))

Ответить

Номер ответа: 13
Автор ответа:
 i0ngunn3r



Вопросов: 11
Ответов: 30
 Профиль | | #13 Добавлено: 26.07.06 22:15
Эхх.. Класс, уже GUI винды начали обсуждать.. :\
Видимо, другого нормального способа работать с html-страницами в ВБ нельзя. :(
Надо будет через винсок попробовать. Хотя, я это себе не представляю..

Ответить

Номер ответа: 14
Автор ответа:
 gvozd



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

Вопросов: 164
Ответов: 1317


 Web-сайт: www.gvozdsoft.com
 Профиль | | #14
Добавлено: 27.07.06 09:28
Private Function FillForm(FieldName As String, _
                          Value As Variant)
    Dim i As Integer, m As Integer
    Dim FormItem As Variant

    For i = 0 To WebBrowser1.Document.Forms.Length - 1
        Set FormItem = WebBrowser1.Document.Forms.Item(i)

        For m = 0 To FormItem.Length - 1

            If FormItem.Item(m).Name = FieldName Then FormItem.Item(m).Value = Value
        Next m
    Next i

End Function

Private Sub ClickButton()
    Dim ovElements As Variant
    Dim i As Integer
    Set ovElements = WebBrowser1.Document.Forms.Item(0).elements

    For i = 0 To ovElements.Length - 1

        If ovElements.Item(i).Type = "submit" Then ovElements.Item(i).Click
    Next i

End Sub

Ответить

Номер ответа: 15
Автор ответа:
 i0ngunn3r



Вопросов: 11
Ответов: 30
 Профиль | | #15 Добавлено: 29.07.06 00:32
Уррррррааааа!!!
Спасибо огромнейшее!!

Ответить

Страница: 1 |

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



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