.NET حدد موقع مربع النص برنامجياً في التحكم ActiveX ، وقم بتعديل النص وإرساله

StackOverflow https://stackoverflow.com/questions/3594932

سؤال

لدي عنصر تحكم 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
هل كانت مفيدة؟

المحلول

نفس الإجابة كما هو السؤال السابق. تحتوي واجهة أتمتة البيع بالتجزئة على طريقة FindText (). لقد أعطيتك بالفعل الرابط إلى وثائق API.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top