Функция _WinAPI_WindowFromPoint

 ↑  ←  Описание функции


_WinAPI_WindowFromPoint

Возвращает дескриптор окна находящегося под точкой с указанными координатами

#include <WinAPI.au3>
_WinAPI_WindowFromPoint(ByRef $tPoint)

Параметры

$tPoint Структура $tagPOINT содержащая координаты точки

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

Успех:Возвращает дескриптор окна находящегося под указанной точкой
Ошибка:Возвращает 0

Примечания

Функция WindowFromPoint не возвращает дескриптор скрытого или отключенного окна, даже если точка находится в пределах окна.

См. также

$tagPOINT

См. также

Искать WindowFromPoint в библиотеке MSDN

Пример

#include <WinAPI.au3>
#include <Constants.au3>
Global $Struct = DllStructCreate($tagPoint), $hTmpWnd

HotKeySet("{ESC}", "_Quit")
Func _Quit()
    Exit
EndFunc

While 1
    Sleep(100)
    $xy = MouseGetPos()
    DllStructSetData($Struct, "x", $xy[0])
    DllStructSetData($Struct, "y", $xy[1])
    $hWnd = _WinAPI_WindowFromPoint($Struct) ; дескриптор окна под курсором
    If $hTmpWnd <> $hWnd Then ; если дескриптор изменился, то запрос новых данных
        $a = WinGetClientSize($hWnd) ; клиентские размеры
        $b = WinGetPos($hWnd) ; коорд. и размеры окна
        $tStru = _WinAPI_GetWindowRect($hWnd) ; тоже что WinGetPos
        $info = _
                'Текст = ' & WinGetTitle($hWnd) & @CRLF & _
                'Класс = ' & _WinAPI_GetClassName($hWnd) & @CRLF & _
                'Идентификатор = ' & _WinAPI_GetDlgCtrlID($hWnd) & @CRLF & _
                'Прямоугольник = ' & DllStructGetData($tStru, 1) & ' - ' & DllStructGetData($tStru, 2) & ' - ' & DllStructGetData($tStru, 3) & ' - ' & DllStructGetData($tStru, 4) & @CRLF & _
                'x=' & $b[0] & @CRLF & 'y=' & $b[1] & @CRLF & 'w=' & $b[2] & ' (кл.' & $a[0] & ')' & @CRLF & 'h=' & $b[3] & ' (кл.' & $a[1] & ')'
        ToolTip($info)
        $hTmpWnd = $hWnd
    EndIf
WEnd