_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