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
' Пример приложения для 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