找图示例带注释

;视频教程: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

给TA捐赠
共{{data.count}}人
人已捐赠
其他

原始输入

2021-12-2 16:17:54

其他

正则替换时调用函数

2021-12-2 16:18:06

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索