powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / SilverLight + vb.Net + IE
10 сообщений из 10, страница 1 из 1
SilverLight + vb.Net + IE
    #38406760
Диам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте.

Моя задача - перейти в браузере на сайт, построенный на SilverLight и заполнить текстовые поля для авторизации.

Создал проект на VB.NET

На кнопку вешаю такой код:

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
  Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim IE As SHDocVw.InternetExplorer = New SHDocVw.InternetExplorer
    Dim SL As XcpControlLib.IXcpControl
    Dim so As XcpControlLib.IXcpObject, so2 As XcpControlLib.XcpControl

    'IE = New InternetExplorer 'Medium
    IE.Visible = True
    IE.Navigate("sprut.su")    
    While IE.Busy Or IE.ReadyState <> 4 'READYSTATE_COMPLETE
      Application.DoEvents()
    End While
    SL = IE.Document.Forms(0).elements(0)
    so = SL.Content.FindName("x:edUser")
  End Sub



Но этот код не работает. В объект SL попадает не объект с типом IXcpControl, а объект mshtml.HTMLObjectElementClass. По крайней мере, когда в отладке пишу

?SL.ToString то получаю
"mshtml.HTMLObjectElementClass"

Может кто помочь решить поставленную задачу?

P.S. в .NET новичок, но готов учиться и грызть гранит науки...
---------------------------------
http://ag-vba.ucoz.ru/ - сервис распознавания капчи теперь и для VBA!!!
...
Рейтинг: 0 / 0
SilverLight + vb.Net + IE
    #38407209
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сильверлайт может общаться с разметкой и наоборот (вроде). Как - надо почитать. А вот как кнопка (что за кнопка вообще, где она расположена, в браузере?) будет общаться с Сильверлайтом - не знаю.
...
Рейтинг: 0 / 0
SilverLight + vb.Net + IE
    #38407212
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Но можно поступить совершенно тупым способом, если не получается получить доступ к контролам в плагине браузера - написать клавиатурного бота.
...
Рейтинг: 0 / 0
SilverLight + vb.Net + IE
    #38407226
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ещё есть вариант, посмотреть, какие запросы-ответы отправляет приложение на сервер. Возможно, можно вручную сформировать такой ответ с уже заполнными параметрами формы и передать сразу на сервер, без использования конкретного СЛ-приложения. Это если в этом СЛ-приложении не делаются всякие проверки, подписи, хеширования и прочие защитные штуки.
...
Рейтинг: 0 / 0
SilverLight + vb.Net + IE
    #38407271
Диам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320можно вручную сформировать такой ответ с уже заполнными параметрами формы и передать сразу на сервер, без использования конкретного СЛ-приложения
Вот этот момент не очень понял. Допустим есть у меня в браузере открытый этот сайт. Фиддлером я получил что он отправляет при вводе данных и нажатии кнопки. Но как мне это из моей программы повторить от имени открытой страницы?
Вот имею я объект IE, открытый на странице www.sprut.su и что дальше? Страница никаких переходов не делает. Любые мои телодвижения не меняют адреса странице, они где-то там внутри приложения обрабатываются. :(
...
Рейтинг: 0 / 0
SilverLight + vb.Net + IE
    #38407287
Диам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще ,как такое возможно: "В объект SL попадает не объект с типом IXcpControl, а объект mshtml.HTMLObjectElementClass" Студия поругалась хоть бы на неверный тип или еще что сказала. Кстати, когда я выполняю аналогичный код в vba из Акцесса, то в SL попадает правильный объект, но у него почему-то SL.context возвращает Null
...
Рейтинг: 0 / 0
SilverLight + vb.Net + IE
    #38408235
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Диамuser7320можно вручную сформировать такой ответ с уже заполнными параметрами формы и передать сразу на сервер, без использования конкретного СЛ-приложения
Вот этот момент не очень понял. Допустим есть у меня в браузере открытый этот сайт. Фиддлером я получил что он отправляет при вводе данных и нажатии кнопки. Но как мне это из моей программы повторить от имени открытой страницы?
Вот имею я объект IE, открытый на странице www.sprut.su и что дальше? Страница никаких переходов не делает. Любые мои телодвижения не меняют адреса странице, они где-то там внутри приложения обрабатываются. :(
Параметры формы, вроде, передаются в тех же параметрах адресной строки. Если это так, то просто формируем POST-запросы с заполненными параметрами и отправляем их серверу. Вот это я имел ввиду.

С другой стороны, если это СЛ-приложение, то наверное оно общается с какими-то службами на севрере. Этим службам тоже передаются запросы с параметрами, только уже, вроде, каким-то своим способом (XML там, байтовым массивом или ещё как-то - смотря что создатель службы предусмотрел). Тогда тоже формируем ответ этим службам с заполненными параметрами. Только тут уже придётся, наверное, использовать либо ПО дополнительное, либо API, которое сформирует ответ службе в нужном формате.
...
Рейтинг: 0 / 0
SilverLight + vb.Net + IE
    #38408237
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По сути, надо просто написать бота, который будет общаться с сервером без использования GUI.
...
Рейтинг: 0 / 0
SilverLight + vb.Net + IE
    #38408284
Диам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320, как вы хорошо за меня решили, что мне нужно :), но написать бота пока не получается.

Приложение SilverLight на странице. Ни о каких параметрах формы, передаваемых в параметрах адресной строки тут речи и не идет. Было бы все так просто - я бы сюда не писал - тогда все делалось бы в два счета.

А судя по этому: авторС другой стороны, если это СЛ-приложение, то наверное оно общается с какими-то службами на севрере вы и сами в первый раз с СЛ приложением столкнулись.
Быть может вы знаете, как объект в браузере правильно закинуть в объект-переменную? Повторюсь - сейчас после выполнения этого кода:
Код: vbnet
1.
SL = IE.Document.Forms(0).elements(0)


в переменной SL находится не объект типа XcpControlLib.IXcpControl (как было объявлено для SL), а mshtml.HTMLObjectElementClass
Как его привести к объекту IXcpControl ?

в любом случае - спасибо за проявленный интерес к теме.
...
Рейтинг: 0 / 0
SilverLight + vb.Net + IE
    #38408411
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Извините, я действительно делал в жизни всего одно СЛ-приложение и оно было подписано на службу. Похоже, я вам больше не могу помочь.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / SilverLight + vb.Net + IE
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]