.NET以编程方式在ActiveX控件中找到文本框,修改其文本并提交

时间:2010-08-29 13:30:25

标签: .net automation activex adobe-reader

我有一个带有工具栏的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 个答案:

答案 0 :(得分:1)

与上一个问题相同的答案。零售自动化界面具有FindText()方法。我已经为您提供了API文档的链接。