Страница: 1 |
Страница: 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
Попробуй 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 нажимает кнопку со свойством 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-сайт:
Профиль | | #14
Добавлено: 27.07.06 09:28
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
Уррррррааааа!!!
Спасибо огромнейшее!!