【函数】FindText中文版- 屏幕抓字生成字库工具与找字函数

一、简介

这是一个简单的辅助工具,用于生成屏幕文字或图像的单行字符串字库。配合强大的“查找文字()”函数,在脚本中非常好用!

在编写自动化脚本时,如果采用先抓图,再制作小图,再用ImageSearch,操作太复杂,且不能仅使用脚本,还要打包图片。

如果仅仅采用颜色判断,显而易见太简陋了,不能精确判断当前的屏幕文字(或图像),及精确定位。

所以这个工具就应运而生了,生成“0_”字符组成的形象化图像描述,并且自动生成“查找文字()”的调用代码,复制到自己的脚本中就行了。

这可是我的独门秘技哦(^_^)!

注意:如果你下载的是txt的文件,请修改后缀名为ahk运行;如果你无法运行,请检查或查新安装ahk。

二、应用场景

  1. 全屏查找图像文字,找到就点击。
  2. 全屏查找图像文字,找到就作为原点,点击基于原点的偏移位置。
  3. 全屏查找图像文字的所有位置,按次序全部点击处理。可以从各个方向,或者从中心螺旋查找。
  4. 定点小范围查找图像文字在该处是否出现。
  5. 制作字库,识别简单的验证码和数字。
  6. 制作字库,查找字库中的文字组合。
  7. 等待图像文字出现。
  8. 等待图像文字消失。
  9. 快速获取指定范围的二值化图像字符串,可用于其他地方的同文字查找。
  10. 通过比较指定范围的二值化图像字符串,等待屏幕改变。
  11. 快速截图并保存到bmp文件。
  12. 快速截图到缓存,然后多次找色。

三、使用方法

用法: (需要最新版本 AHK v1.1.34+)
1. 将本脚本保存为“FindText.ahk”并复制到AHK执行程序的Lib子目录中(手动建立目录)
 2. 抓图并生成调用FindText()的代码
 2.1 方式一:直接点击“抓图”按钮
2.2 方式二:先设定截屏热键,使用热键截屏,再点击“截屏抓图”按钮
3. 测试一下调用的代码是否成功:直接点击“测试”按钮
4. 复制调用的代码到自己的脚本中
4.1 方式一:打勾“附加FindText()函数”的选框,然后点击“复制”按钮(不推荐)
4.2 方式二:取消“附加FindText()函数”的选框,然后点击“复制”按钮,
然后粘贴到自己的脚本中,然后在自己的脚本开头加上一行:
#Include <FindText> ; Lib目录中必须有FindText.ahk
5. 多色查找模式可以一定程度上适应图像的放大缩小,常用于游戏中找图
6. 这个库还可以用于快速截屏、获取颜色、写入颜色、编辑后另存图片
7. 如果要调用FindTextClass类中的函数,请用无参数的FindText()获取类实例对象

三、帮助

FindText从入门到精通视频教程

FindText 深度教程 v1.2

四、更新记录

更新至9.7版本-2024/06/18
1.修改:使用左右膨胀算法大大提高了轻微变形图像的查找成功率,推荐升级到这个新版本。
2.添加:使用 FindText().GetTextFromScreen() 快速生成Text到剪贴板。

五、源码下载

下载权限
查看
  • 免费下载
    评论并刷新后下载
    登录后下载
  • {{attr.name}}:
您当前的等级为
登录后免费下载登录 小黑屋反思中,不准下载! 评论后刷新页面下载评论 支付以后下载 请先登录 您今天的下载次数(次)用完了,请明天再来 支付积分以后下载立即支付 支付以后下载立即支付 您当前的用户组不允许下载升级会员
您已获得下载权限 您可以每天下载资源次,今日剩余
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

给TA捐赠
共{{data.count}}人
人已捐赠
函数

GetToolTipText 获取当前tooltip内的文字 AutoHotkey

2020-2-20 8:28:43

函数

runcmd函数

2020-5-12 20:08:07

151 条回复 A文章作者 M管理员
  1. user15124

    感谢分享生产力工具!!!

  2. james

    谢谢楼主分享

  3. hexuren
    1河许人给您打赏了¥5
  4. hexuren

    飞佬,当时移交给你的时候,忘了把下载链接拿掉了,现在已经清除,特告知!

  5. dbgba
    dbgba给您打赏了¥5
  6. Enigma

    对于魔兽世界这种技能图标. 上面有一层阴影蒙着, 在转动的. 有什么好的办法?

    • 匚匚

      魔兽世界的输出循环提示是用WA插件实现的 WA的图标没有你说的这种情况
      魔兽论坛有各个职业的WA提示代码别人现成的你复制就行
      然后用这个抓图工具 做成一件输出脚本 就是看到图标按哪个技能
      AHK几十毫秒做一次反应比人快N倍 基本上能做到完美输出
      特别是萨满的图腾舞猎人的猛禽舞骑士的圣印舞 全程只用按一个按键
      不过上传WCL会被封号

    • aahk

      办法1,先找附近的字和图片,再计算位移修正偏移量。

      办法2,截屏抓图。

      办法3,截屏抓图,抓取转动时不同的字和图片,同时找所有图片。

      办法4,在微信或者QQ中问别人。

      办法5,在百度,必应,西瓜视频,哔哩哔哩中搜索并且筛选遇到的问题。

  7. dbgba
    dbgba给您捐赠了¥5
  8. 1111333

    学习了

  9. Tmz

    没看懂这个工具有什么用呢、

  10. 辅导费

    这个厉害了

  11. 等风来

    牛啊

  12. 慢速爬行中

    感谢,超神工具

  13. 知己天涯

    学习学习

  14. 一路向东北

    这个不知道速度如何呢

  15. 旧城往事繞
    旧城往事繞给您打赏了¥5
  16. dbgba

    推荐一个FindText 详细教程:https://www.autoahk.com/archives/41636

  17. 素兮若雪

    有v2版的就好了

  18. nini8

    #NoEnv #SingleInstance Force ; #Include aaa: t1:=A_TickCount, Text:=X:=Y:=”” Text.=”|*169$63.00001000000000042zy1Uz1k07zY0EQ0EF00GUS46E20802Y07lV0U100zy04N440E004bwY8N04DSzY+I1083006oVEk813E00VYGu10EPs008WEE800000N4Xy10U” Text:=”|*160$7.000000000000000000000000000000000000000000000000000Dvss8U” if (ok := FindText(X, Y,,,,,10,, Text)) { if (ok[1].id == “gean”) { ; 找到 “auto” 图像后要进行的操作 FindText().Click(X, Y, “L”) Sleep 500 } else if (ok[1].id == “xjt”) { ; 找到 “hot” 图像后要进行的操作 FindText().Click(X, Y, “L”) Sleep 500 goto aaa } }

  19. nini8

    上边这段代码有问题吗?怎么运行不了

  20. 云上的星

    膜拜大佬

  21. Chaos11954

    真的厉害

  22. Jos

    感谢分享

  23. 乔玄

    怎么调用这个?

  24. jH

    没有找到提取码

  25. vu345

    感谢大佬的分享,新来的多多向您学习

  26. SolarDoc

    您好。
    用 FindText().OCR 函数来实现一个基本的光学字符识别器 (OCR)
    如数字5有两种图案,怎么把这两种图案加入文本库?好象只能加入2个文本库,这样就实现不了用一个文本库来OCR。
    另,OCR功能怎么实现,有没有详细的教程?
    谢谢

  27. railsoap

    这个效率太棒了

  28. iadngos

    谢谢大神

  29. 飞跃

    ; OCR 识别的例子,字库可以添加多种字体,多种抓取模式混合

    Text:=””
    Text.=”|**50$11.1s3kTlznXb3Q6kBUT0y1w3k7UD0y1g3MCsNlnzXy3k7UU”
    Text.=”|*150$11.1s3kTlznXb3Q6kBUT0y1w3k7UD0y1g3MCsNlnzXy3k7UU”
    Text.=”|*100$9.1kC7lyAl60k61kA1UA1UA1UA30M30MzzzzzzU”
    Text.=”|**50$9.1kC7lyAl60k61kA1UA1UA1UA30M30MzzzzzzU”
    Text.=”|**50$11.3s7kTlzn3a7060A0M1k30C0w1UD0w1k7US0s3TazDyE”
    Text.=”|**50$11.3s7kTszF3U3060A0sNUy143s0s0k1U30CUR1nzby7sDkU”
    Text.=”|**50$11.0C0Q1c6EDUT1g2MAktVX7CAQElVbzzzzbzi1k3U60A0MU”
    Text.=”|**50$11.7yDwTszlU30C0M0z1z3y7y8Q0M0k1U30CUt1nzby7kDUU”
    Text.=”|**50$11.1w3sTtznUb1Q0s1k7SCwTwrxsvlq1g3M6sxlnzXy3s7kU”
    Text.=”|**50$11.zzzzzLyU70A0s1k30C0M1k3U60Q0s1U70A0s1k30C0E”
    Text.=”|**50$11.1s3kTlznXa3A6MAslrVy7QTwkvVq1g3M6kBknzXz3s7kU”
    Text.=”|**50$11.3s7kTlznXj7M6kBUPXr7jvDyDMSk1U30CEsVnzby7kDUU”

    ok:=FindText(X,Y, 100, 100, 200, 200, 0.1, 0.1, Text)
    验证码:=FindText().Ocr(ok).text
    MsgBox % 验证码

  30. user16310

    最新版的 点击测试 报错哦

  31. QQ农场

    谢谢楼主分享

  32. aahk

    ; 如果找到”我的云文档”字样表示已经登录成功,直接退出脚本
    ; 操作需要等待窗口或者控件的出现就用LOOP循环,IF判断和SLEEP等待
    ; 操作有先后顺序关系就用大括号嵌套各层操作
    ; 不同电脑,不同显卡,不同屏幕分辨率下显示的图片不同就在不同电脑上多抓几次图,同时并行查找搜索FindText多个图片
    ; 需要并行同时多个操作时请使用SetTimer语句,以指定的时间间隔自动并重复运行子程序.
    ; 需要并行同时多个操作时不要用LOOP循环,loop循环无法并行执行多个操作

个人中心
购物车
优惠劵
有新私信 私信列表
搜索