ControlClick ( $Titles, "","[X:131; Y:103]")
MouseClick("left","131", "103",1,1)
Какую информацию по данной кнопке выдаёт AutoIt Window Info? Возможно эта "кнопка" нарисована и у неё нет класса...узнать класс кнопки по её координатам
ControlClick ( $Titles, "","[X:131; Y:103]")
ControlClick ( '[ACTIVE]', "","[X:131; Y:103]")
ControlClick ($Titles, "", "Button1")
#include <WinAPI.au3>
HotKeySet('{ESC}', '_Exit')
While 1
ToolTip(_WinAPI_GetWindowText(GetHoveredHwnd(MouseGetPos(0), MouseGetPos(1))))
Sleep(100)
WEnd
Func GetHoveredHwnd($i_xpos, $i_ypos)
Local $iRet = DllCall("user32.dll", "int", "WindowFromPoint", "long", $i_xpos, "long", $i_ypos)
If IsArray($iRet) Then
Return HWnd($iRet[0])
Else
Return SetError(1, 0, 0)
EndIf
EndFunc
Func _Exit()
Exit
EndFunc
Координаты - экранныекак получить тогда ClassnameNN
#include <WinAPIEx.au3>
Run("calc.exe")
$wnd = WinWaitActive("[class:CalcFrame]")
MsgBox(0, "", GetClassNameNN($wnd, 797, 458))
Func GetClassNameNN($ParentWnd, $X, $Y)
Local $Control, $Class, $Wins, $Inst = 0
If Not IsHWnd($ParentWnd) Then Return ""
Local $Point = DllStructCreate($tagPoint)
DllStructSetData($Point, "x", $X)
DllStructSetData($Point, "y", $Y)
$Control = _WinAPI_WindowFromPoint($Point)
If Not $Control Then Return ""
$Class = _WinAPI_GetClassName($Control)
If @error Then Return ""
$Wins = _WinAPI_EnumChildWindows($ParentWnd, True)
If IsArray($Wins) Then
For $i = 1 To $Wins[0][0]
If $Wins[$i][1] = $Class Then $Inst += 1
If $Wins[$i][0] = $Control Then Return $Class & $Inst
Next
EndIf
Return ""
EndFunc
#include <WinAPIEx.au3>
$sTitle = 'Окно'
$aData = _WinAPI_EnumChildWindows(WinGetHandle($sTitle, ''), 0)
$iX = 436
$iY = 65
For $i = 1 To $aData[0][0]
If $aData[$i][1] = 'Button' Then
$aPos = ControlGetPos($sTitle, '', $aData[$i][0])
If $iX >= $aPos[0] And $iX <= $aPos[0] + $aPos[2] And $iY >= $aPos[1] And $iY <= $aPos[1] + $aPos[3] Then
ConsoleWrite(ControlGetText($sTitle, '', $aData[$i][0]) & ' ' & $aData[$i][0] & @LF)
ControlClick($sTitle, '', $aData[$i][0])
EndIf
EndIf
Next
Круть! Работает с перекрытыми и свёрнутыми окнами. Обязательно пригодится.Мой вариант, может кому пригодится
Мой вариант, может кому пригодится:
Код:#include <WinAPIEx.au3> $sTitle = 'Окно' $aData = _WinAPI_EnumChildWindows(WinGetHandle($sTitle, ''), 0) $iX = 436 $iY = 65 For $i = 1 To $aData[0][0] If $aData[$i][1] = 'Button' Then $aPos = ControlGetPos($sTitle, '', $aData[$i][0]) If $iX >= $aPos[0] And $iX <= $aPos[0] + $aPos[2] And $iY >= $aPos[1] And $iY <= $aPos[1] + $aPos[3] Then ConsoleWrite(ControlGetText($sTitle, '', $aData[$i][0]) & ' ' & $aData[$i][0] & @LF) ControlClick($sTitle, '', $aData[$i][0]) EndIf EndIf Next