找不到控件
Unable to find control
我想使用 Autoit 查找并单击按钮。我尝试了 AutoIt Window 信息工具,但无法识别按钮,因此 ControlClick()
失败。
按钮在当前 window 上处于活动状态,但 Send("Enter")
不起作用。尝试使用 MouseClick()
但 window 每次都不会出现在同一个地方,我尝试了这个脚本:
$hWnd = WinWait("vcredist_x86")
WinWaitActive("vcredist_x86")
ControlClick($hWnd, "", "[CLASS FROM AUTOITINFO]", "Left", 1)
但它们都不起作用。还有其他方法可以识别并点击按钮吗?
如果 AutoItWindowInfo
(32 位和 64 位)的两个版本都没有 "see" 您需要自动化的控制,您可以执行以下操作:
方法 1 - 发送击键:
- 用
WindowActivate
激活window
- 发送多个 TAB 直到控件获得焦点(如果最初不是)
Send
输入或 SPACE
方法二 - MouseClick
:
- 激活window
- 获取控件相对于应用程序的坐标 window(将 window 定位在 0,0。打开
Autoit Window Info
,单击鼠标选项卡并获取控件的位置按钮)。该位置通常总是相同的
- 当你的代码是运行时,它必须用
WinGetPos
获得window位置,然后添加你在第2步中获得的控制位置。这就是你的点击位置。
方法三-PixelSearch
(如果控件有唯一颜色):
- 使用
AutoIt Window Info
(鼠标选项卡)获得所需的颜色
- 使用
PixelSearch
搜索
- 点击你得到的坐标
方法四-图片搜索:
- 获取
ImageSearch
UDF和DLL
- 制作按钮图片
- 搜索并点击它
注意:有时您需要授予脚本管理员权限才能自动执行某些 windows.
当 AutoIt Window 信息工具失败时,我使用 button/ui 控件的文本 属性 成功了:
ControlClick($hwin, '', '[CLASS:Button; TEXT:Cancel]')
尝试在其中一个字符前添加“&”(下划线 Windows 表示 Alt + key 快捷方式),因此请尝试使用“&Cancel”而不是 "Cancel"。如果失败,请先尝试 ControlFocus()
:
ControlFocus($hwin, '', '[CLASS:Button; TEXT:Cancel]')
ControlClick($hwin, '', '[CLASS:Button; TEXT:Cancel]')
检查 .exe 文件的 GUI 资源(例如使用 Resource Hacker)可能会暴露控件的 text/properties。示例:
我想使用 Autoit 查找并单击按钮。我尝试了 AutoIt Window 信息工具,但无法识别按钮,因此 ControlClick()
失败。
按钮在当前 window 上处于活动状态,但 Send("Enter")
不起作用。尝试使用 MouseClick()
但 window 每次都不会出现在同一个地方,我尝试了这个脚本:
$hWnd = WinWait("vcredist_x86")
WinWaitActive("vcredist_x86")
ControlClick($hWnd, "", "[CLASS FROM AUTOITINFO]", "Left", 1)
但它们都不起作用。还有其他方法可以识别并点击按钮吗?
如果 AutoItWindowInfo
(32 位和 64 位)的两个版本都没有 "see" 您需要自动化的控制,您可以执行以下操作:
方法 1 - 发送击键:
- 用
WindowActivate
激活window
- 发送多个 TAB 直到控件获得焦点(如果最初不是)
Send
输入或 SPACE
方法二 - MouseClick
:
- 激活window
- 获取控件相对于应用程序的坐标 window(将 window 定位在 0,0。打开
Autoit Window Info
,单击鼠标选项卡并获取控件的位置按钮)。该位置通常总是相同的 - 当你的代码是运行时,它必须用
WinGetPos
获得window位置,然后添加你在第2步中获得的控制位置。这就是你的点击位置。
方法三-PixelSearch
(如果控件有唯一颜色):
- 使用
AutoIt Window Info
(鼠标选项卡)获得所需的颜色 - 使用
PixelSearch
搜索
- 点击你得到的坐标
方法四-图片搜索:
- 获取
ImageSearch
UDF和DLL - 制作按钮图片
- 搜索并点击它
注意:有时您需要授予脚本管理员权限才能自动执行某些 windows.
当 AutoIt Window 信息工具失败时,我使用 button/ui 控件的文本 属性 成功了:
ControlClick($hwin, '', '[CLASS:Button; TEXT:Cancel]')
尝试在其中一个字符前添加“&”(下划线 Windows 表示 Alt + key 快捷方式),因此请尝试使用“&Cancel”而不是 "Cancel"。如果失败,请先尝试 ControlFocus()
:
ControlFocus($hwin, '', '[CLASS:Button; TEXT:Cancel]')
ControlClick($hwin, '', '[CLASS:Button; TEXT:Cancel]')
检查 .exe 文件的 GUI 资源(例如使用 Resource Hacker)可能会暴露控件的 text/properties。示例: