我想找到并使用自动点击一个按钮。我尝试了AutoIt窗口信息工具,但无法识别该按钮,因此ControlClick()
失败。
该按钮在当前窗口中处于活动状态,但Send("Enter")
不起作用。使用MouseClick()
尝试但每次都没有出现在同一个地方的窗口,我尝试了这个脚本:
$hWnd = WinWait("vcredist_x86")
WinWaitActive("vcredist_x86")
ControlClick($hWnd, "", "[CLASS FROM AUTOITINFO]", "Left", 1)
但它们都不起作用。有没有其他方法可以识别并点击按钮?
答案 0 :(得分:0)
如果AutoItWindowInfo
(32和64位)的版本都没有""请参阅"您需要自动执行的控件,您可以执行以下操作:
方法1 - 发送击键:
WindowActivate
Send
ENTER或SPACE 方法2 - MouseClick
:
Autoit Window Info
,单击鼠标选项卡并获取按钮的位置)。那个位置通常都是一样的WinGetPos
获取窗口位置,然后添加您在步骤2中获得的控制位置。这是您的点击位置。 方法3 - PixelSearch
(如果控件具有独特的颜色):
AutoIt Window Info
(鼠标选项卡)PixelSearch
方法4 - ImageSearch:
ImageSearch
UDF和DLL 注意:有时您需要提供脚本管理员权限才能自动执行某些窗口。
答案 1 :(得分:0)
当AutoIt窗口信息工具失败时,我成功使用了按钮/ ui控件的text属性:
ControlClick($hwin, '', '[CLASS:Button; TEXT:Cancel]')
试验“&”在其中一个字符前面(由Windows加下划线表示 Alt + 键快捷键),因此请尝试“& Cancel”而不是“Cancel”。如果失败,请先尝试ControlFocus()
:
ControlFocus($hwin, '', '[CLASS:Button; TEXT:Cancel]')
ControlClick($hwin, '', '[CLASS:Button; TEXT:Cancel]')
检查.exe文件的GUI资源(例如,使用Resource Hacker)可能会公开控件的文本/属性。例如: