.NET программно находит текстовое поле в элементе управления ActiveX, изменяет его текст и отправляет его - PullRequest
0 голосов
/ 29 августа 2010

У меня есть элемент управления ActiveX (Adobe PDF Reader) с панелью инструментов.Этот элемент управления не предоставляет некоторые функции, доступные через панель инструментов (в основном, функцию поиска).Я ищу способ программно найти поле поиска на панели инструментов, ввести текст и вызвать поиск (эквивалент нажатия клавиши Enter в этом поле).Какой самый точный способ сделать это?Нашел решение на основе пространства имен System.Windows.Automation, но не смог заставить его работать правильно.

Спасибо.

Вот код, который я пробовал:

Dim pdfElement As AutomationElement = AutomationElement.FromHandle(AxAcroPDF1.Handle)
Dim condition As New AndCondition(New OrCondition(New PropertyCondition(AutomationElement.ControlTypeProperty, ControlType.Edit), New PropertyCondition(AutomationElement.ControlTypeProperty, ControlType.Document), New PropertyCondition(AutomationElement.ControlTypeProperty, ControlType.Text)), New PropertyCondition(AutomationElement.IsTextPatternAvailableProperty, True))
Dim ac As AutomationElementCollection = pdfElement.FindAll(TreeScope.Descendants, condition)

For Each element As AutomationElement In ac

    If element.Current.Name = "Find" Then
        element.SetFocus()
        SendKeys.Send("TESTSEARCH")
    End If

Next

1 Ответ

1 голос
/ 29 августа 2010

Тот же ответ, что и на предыдущий вопрос.Интерфейс автоматизации розничной торговли имеет метод FindText ().Я уже дал вам ссылку на документацию API.

...