|
SilverLight + vb.Net + IE
|
|||
---|---|---|---|
#18+
Здравствуйте. Моя задача - перейти в браузере на сайт, построенный на SilverLight и заполнить текстовые поля для авторизации. Создал проект на VB.NET На кнопку вешаю такой код: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
Но этот код не работает. В объект SL попадает не объект с типом IXcpControl, а объект mshtml.HTMLObjectElementClass. По крайней мере, когда в отладке пишу ?SL.ToString то получаю "mshtml.HTMLObjectElementClass" Может кто помочь решить поставленную задачу? P.S. в .NET новичок, но готов учиться и грызть гранит науки... --------------------------------- http://ag-vba.ucoz.ru/ - сервис распознавания капчи теперь и для VBA!!! ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2013, 08:50 |
|
SilverLight + vb.Net + IE
|
|||
---|---|---|---|
#18+
Сильверлайт может общаться с разметкой и наоборот (вроде). Как - надо почитать. А вот как кнопка (что за кнопка вообще, где она расположена, в браузере?) будет общаться с Сильверлайтом - не знаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2013, 14:05 |
|
SilverLight + vb.Net + IE
|
|||
---|---|---|---|
#18+
Но можно поступить совершенно тупым способом, если не получается получить доступ к контролам в плагине браузера - написать клавиатурного бота. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2013, 14:08 |
|
SilverLight + vb.Net + IE
|
|||
---|---|---|---|
#18+
Ещё есть вариант, посмотреть, какие запросы-ответы отправляет приложение на сервер. Возможно, можно вручную сформировать такой ответ с уже заполнными параметрами формы и передать сразу на сервер, без использования конкретного СЛ-приложения. Это если в этом СЛ-приложении не делаются всякие проверки, подписи, хеширования и прочие защитные штуки. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2013, 14:15 |
|
SilverLight + vb.Net + IE
|
|||
---|---|---|---|
#18+
user7320можно вручную сформировать такой ответ с уже заполнными параметрами формы и передать сразу на сервер, без использования конкретного СЛ-приложения Вот этот момент не очень понял. Допустим есть у меня в браузере открытый этот сайт. Фиддлером я получил что он отправляет при вводе данных и нажатии кнопки. Но как мне это из моей программы повторить от имени открытой страницы? Вот имею я объект IE, открытый на странице www.sprut.su и что дальше? Страница никаких переходов не делает. Любые мои телодвижения не меняют адреса странице, они где-то там внутри приложения обрабатываются. :( ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2013, 14:37 |
|
SilverLight + vb.Net + IE
|
|||
---|---|---|---|
#18+
Вообще ,как такое возможно: "В объект SL попадает не объект с типом IXcpControl, а объект mshtml.HTMLObjectElementClass" Студия поругалась хоть бы на неверный тип или еще что сказала. Кстати, когда я выполняю аналогичный код в vba из Акцесса, то в SL попадает правильный объект, но у него почему-то SL.context возвращает Null ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2013, 14:44 |
|
SilverLight + vb.Net + IE
|
|||
---|---|---|---|
#18+
Диамuser7320можно вручную сформировать такой ответ с уже заполнными параметрами формы и передать сразу на сервер, без использования конкретного СЛ-приложения Вот этот момент не очень понял. Допустим есть у меня в браузере открытый этот сайт. Фиддлером я получил что он отправляет при вводе данных и нажатии кнопки. Но как мне это из моей программы повторить от имени открытой страницы? Вот имею я объект IE, открытый на странице www.sprut.su и что дальше? Страница никаких переходов не делает. Любые мои телодвижения не меняют адреса странице, они где-то там внутри приложения обрабатываются. :( Параметры формы, вроде, передаются в тех же параметрах адресной строки. Если это так, то просто формируем POST-запросы с заполненными параметрами и отправляем их серверу. Вот это я имел ввиду. С другой стороны, если это СЛ-приложение, то наверное оно общается с какими-то службами на севрере. Этим службам тоже передаются запросы с параметрами, только уже, вроде, каким-то своим способом (XML там, байтовым массивом или ещё как-то - смотря что создатель службы предусмотрел). Тогда тоже формируем ответ этим службам с заполненными параметрами. Только тут уже придётся, наверное, использовать либо ПО дополнительное, либо API, которое сформирует ответ службе в нужном формате. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2013, 12:22 |
|
SilverLight + vb.Net + IE
|
|||
---|---|---|---|
#18+
По сути, надо просто написать бота, который будет общаться с сервером без использования GUI. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2013, 12:23 |
|
SilverLight + vb.Net + IE
|
|||
---|---|---|---|
#18+
user7320, как вы хорошо за меня решили, что мне нужно :), но написать бота пока не получается. Приложение SilverLight на странице. Ни о каких параметрах формы, передаваемых в параметрах адресной строки тут речи и не идет. Было бы все так просто - я бы сюда не писал - тогда все делалось бы в два счета. А судя по этому: авторС другой стороны, если это СЛ-приложение, то наверное оно общается с какими-то службами на севрере вы и сами в первый раз с СЛ приложением столкнулись. Быть может вы знаете, как объект в браузере правильно закинуть в объект-переменную? Повторюсь - сейчас после выполнения этого кода: Код: vbnet 1.
в переменной SL находится не объект типа XcpControlLib.IXcpControl (как было объявлено для SL), а mshtml.HTMLObjectElementClass Как его привести к объекту IXcpControl ? в любом случае - спасибо за проявленный интерес к теме. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2013, 12:54 |
|
|
start [/forum/topic.php?fid=20&msg=38407209&tid=1403970]: |
0ms |
get settings: |
10ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
65ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
2ms |
others: | 337ms |
total: | 496ms |
0 / 0 |