Функция AccessibleObjectFromPoint

Declare Function AccessibleObjectFromPoint Lib "oleacc" _
    (ByVal x As Long, _
     ByVal y As Long, _
     ppoleAcc As Object, _
     pvarElement As Variant) As Long

AccessibleObjectFromPoint получает адрес указателя интерфейса IAccesible для объекта в заданной точке экрана

Возвращаемое значение

В случае ошибки функция возвращает код ошибки. В успешном случае возвращается S_OK

Параметры

x
Экранная координата
y
Экранная координата
ppoleAcc
Адрес указателя интерфейса IAccessible
pvarElement
Адрес структуры that specifies whether the IAccessible interface pointer returned in ppacc belongs to the object at the specified point or to the parent of the element at the specified point. The vt member of the VARIANT is always VT_I4. If the lVal member is CHILDID_SELF, then the IAccessible interface pointer at ppacc belongs to the object at the point. Otherwise, ppacc is the address of the IAccessible interface of the child element's parent object. Clients must call VariantClear on the retrieved VARIANT parameter when finished using it.

Пример

' Пример приложения для Active Accessibility
' Запустив программу, перемещайте курсор по экрану,
' непосредственно над элементами различных окон,
' например, над html-страницей.
' Так как Internet Explorer может выступать как
' Accessibility Server, то приложение Visual Basic
' может обнаруживать значения определяющих параметров
' для элементов документа. Приложение Visual Basic
' отображает данные как простую подсказку.
' Более сложное приложение может отображать эту информацию по-другому,
' например, через Braille reader или через синтезатор речи.

Private Sub Form_Load()
' Отобразить форму Form1 и сделать ее активной
SetWindowPos Form1.hWnd, _
     HWND_TOPMOST, _
     0, 0, 0, 0, _
    (SWP_NOSIZE Or SWP_NOMOVE)
End Sub

Private Sub Timer1_Timer()
Dim p As POINTAPI
    Dim objAccessible As Object
    Dim v As Variant
    Dim sName As String

    ' Получить положение курсора
    GetCursorPos p

    ' Запросить интерфейс IAccessible из объекта под курсором
    AccessibleObjectFromPoint p.x, p.y, objAccessible, v

    ' Получить название свойства объекта под курсором
    sName = ""
    On Error Resume Next
    sName = objAccessible.accName(v)
    On Error GoTo 0

    ' Следовать за курсором
    Form1.ZOrder
    Form1.Left = (p.x * Screen.TwipsPerPixelX) + 100
    Form1.Top = (p.y * Screen.TwipsPerPixelY) + 100

    ' Вывести информацию
    Form1.Cls
    Form1.Print sName

End Sub

Категория

Специальные возможности

Реклама