;视频教程:https://www.bilibili.com/video/BV1mf4y1v7nQ
; 使用LoadPicture()可以提高找图的速度
#NoEnv ;不检查空变量是否为环境变量以提升性能
SendMode Input ;发送模拟点击,速度更快,发送过程中缓冲键盘和鼠标活动
SetWorkingDir %A_ScriptDir% ;改变脚本的工作目录到当前脚本所在目录的绝对路径. 不包含最后的反斜杠(根目录同样如此).
SysGet, VirtualHeight, 79 ;度量是虚拟屏幕左上角的坐标
SysGet, VirtualWidth, 78 ;虚拟屏幕的宽度和高度, 单位为像素. 虚拟屏幕是所有监视器的边框
F1::
__ImageFilePath:="C:\1024.png" ;截图的位置
Gui, Add, Picture,hwnd__mypic,%__ImageFilePath% ;用截图创建一个gui控件
if FileExist(__ImageFilePath) {
Controlgetpos,,,__img_w,__img_h,,ahk_id %__mypic% ;__img_w和__img_h用来存储控件的宽和高,ahk_id表示控件的唯一id
CoordMode Pixel ;为多个命令设置坐标模式, 相对于活动窗口还是屏幕,pixel: 作用于 PixelGetColor, PixelSearch 和 ImageSearch.
ImageSearch, __FoundX, __FoundY, 0, 0, VirtualWidth, VirtualHeight,%__ImageFilePath% ;识别图片的左上角的xy坐标存储在__FoundX, __FoundY.
CoordMode Mouse ;为多个命令设置坐标模式, 相对于活动窗口
PicX:=__FoundX + __img_w/2 ;搜索到的图片的x坐标加上截取的图片一半的长度
PicY:=__FoundY + __img_h/2 ;搜索到的图片的y坐标加上截取的图片一半的宽度
if (ErrorLevel=0) { ;如果没有报错就执行,=1是没找到 =2是其他错误
MouseGetPos, NowX, NowY ;获取当前鼠标xy坐标
CoordMode, Mouse , Screen ;设置坐标模式, 相对于屏幕
__ClickX:=PicX
__ClickY:=PicY
__ClickTimes:=1
Click %__ClickX%, %__ClickY%, %__ClickTimes% ;此处为点击找到的目标
__ClickX:=NowX
__ClickY:=NowY
__ClickTimes:=0
Click %__ClickX%, %__ClickY%, %__ClickTimes% ;此处为鼠标返回点击前的位置
} else {
}
} else {
}
Return
暂无讨论,说说你的看法吧