powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Доступ к компоненту xbap извне.
4 сообщений из 4, страница 1 из 1
Доступ к компоненту xbap извне.
    #39569557
yura-007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день.
Есть xbap приложение, запускаемое в IE, после запуска в первую очередь отображается окно авторизации. Требуется сразу после запуска, ка вариант, выполнить скрипт с целью подмены информации в окне авторизации. В связи с чем вопрос, как получить доступ к полю ввода имени пользователя? С xbap ранее не пересекался, если бы это было WinForm, использовал бы Spy++ для получения дескриптора...
...
Рейтинг: 0 / 0
Доступ к компоненту xbap извне.
    #39569581
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
yura-007Добрый день.
Есть xbap приложение, запускаемое в IE, после запуска в первую очередь отображается окно авторизации. Требуется сразу после запуска, ка вариант, выполнить скрипт с целью подмены информации в окне авторизации. В связи с чем вопрос, как получить доступ к полю ввода имени пользователя? С xbap ранее не пересекался, если бы это было WinForm, использовал бы Spy++ для получения дескриптора...
для WPF есть свои шпионы
...
Рейтинг: 0 / 0
Доступ к компоненту xbap извне.
    #39575003
yura-007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman Mejtes,

Спасибо за подсказку.
При помощи Inspect.exe выяснил, что добраться до компонентов возможно.
Создал простое WinForm App, с компонентом веб браузера в котором запускается xbap и кнопкой с обработчиком:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
AutomationElement ae = AutomationElement.FromHandle(webBrowser1.Handle);
ValuePattern vp = ae.FindFirst(TreeScope.Descendants,
     new PropertyCondition(AutomationElement.AutomationIdProperty, "txtUserName"))
     .GetCurrentPattern(ValuePattern.Pattern) as ValuePattern;
if (vp != null)
{
    vp.SetValue("1234");
}


При этом, текст в компоненте заменяется только если поставить точку прерывания в любом месте, перед vp.SetValue("1234"); и соответственно запустить из-под отладчика, программа прерывается, после нажатия continue выполнение продолжается, текст заменяется.
Если запустить exe или без точки прерывания и нажать кнопку, выполнение программы замораживается ровно на минуту, после чего выскакивает COMxception(скрин прикрепил) и при этом если продолжить выполнение программы, текст все-таки заменяется.
...
Рейтинг: 0 / 0
Доступ к компоненту xbap извне.
    #39627765
yura-007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В моем случае проблема решилась выбором платформы х86.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Доступ к компоненту xbap извне.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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