当前位置: 首页 > news >正文

AutoHotkey V2扩展库ahk2_lib快速上手:10分钟搭建一个智能截图识别工具

AutoHotkey V2扩展库ahk2_lib快速上手:10分钟搭建一个智能截图识别工具

【免费下载链接】ahk2_lib项目地址: https://gitcode.com/gh_mirrors/ah/ahk2_lib

你是不是也遇到过这种情况:AutoHotkey 脚本写好了自动化流程,可一到"读图片里的文字""算超高精度小数""做个现代界面",就得一头扎进DllCall文档里翻半天?

AutoHotkey V2扩展库 ahk2_lib就是来解决这个问题的。它把 50 多个专业模块打包成一个工具箱,从 Windows API 调用、OCR 文字识别、Excel 读写到 Web 界面、网络服务,全部封装成几行就能调用的函数。它适合所有想从"写脚本"升级到"写应用"的 AHK 用户——不需要懂 C++,不需要翻微软文档,上手就能跑。

一眼看懂:这是不是你要的东西

项目说明
适合谁用有 AutoHotkey 基础、想快速实现系统级或业务级功能的开发者
核心能力OCR 识别、屏幕捕获、Excel/数据库操作、现代界面、网络服务、C++ 性能扩展
上手难度★★☆☆☆(会#Include就能开始)
典型产出自动文档录入工具、系统监控面板、数据报表、自动化测试脚本
环境要求Windows + AutoHotkey V2,各 DLL 均自带 32/64 位版本

三步上车指南:从克隆到跑通第一个识别

第 1 步:获取项目代码

在你自己的项目目录旁边克隆下来即可:

git clone https://gitcode.com/gh_mirrors/ah/ahk2_lib

不需要安装任何依赖,目录结构即模块结构:RapidOcr/WebView2/SQLite/WinAPI/一目了然。

第 2 步:引入你要的模块

写一个空脚本,用#Include引入模块,注意尖括号路径写法:

#Include <ahk2_lib\RapidOcr\RapidOcr> ; OCR 识别 #Include <ahk2_lib\wincapture\wincapture> ; 屏幕捕获

第 3 步:跑通第一个识别

把任意一张带文字的图片放到脚本目录,运行下面这段:

ocr := RapidOcr({ models: A_ScriptDir '\models' }) ; 用项目自带的模型 result := ocr.ocr_from_file('1.jpg') ; 识别图片 MsgBox result.text ; 弹出识别到的文字

看到弹窗里出现图片上的文字,你的第一个 OCR 工具就跑通了。整个过程不到 10 行代码,别慌,就这么简单。😊

核心能力速览:按"省下的时间"看这张能力地图

与其罗列技术名词,不如看每个模块帮你省下了哪类时间:

帮你省下的时间对应模块一句话价值
调 Windows API 的时间WinAPI/Detours/系统调用、注册表、API 拦截全部封装好
写界面 UI 的时间WebView2/XCGUI/CGdip.ahk现代 Web 界面或原生炫彩窗口,拖出来就能用
折腾数据格式的时间JSON.ahkYAML.ahkBase64.ahk解析、转换、序列化一行搞定
处理业务数据的时间SQLite/CSQLite.ahkXL/XL.ahk数据库与 Excel 直接读写,不依赖 Office
造轮子的时间MCode.ahkNative/ctypes.ahk嵌入 C++ 机器码,性能关键处获得原生速度
写网络代码的时间HttpServer.ahkWebSocket.ahkSocket.ahk从 HTTP 请求到实时通信一站配齐
重复截图找字的时间wincapture/RapidOcr/Yolo/opencv/截屏、找色、找图、OCR、目标检测全覆盖

说白了,这套库覆盖了一个 Windows 工具从"采集→识别→处理→存储→展示"的完整链路,你只需要把模块像积木一样拼起来。

一个完整实战:做一个定时"截图识别写 Excel"的小工具

下面把最有代表性的场景完整跑一遍:定时截取屏幕上某个区域的文字,识别后写入 Excel。这正好是"智能文档录入系统"的最小原型。

第 1 步:搭好脚本骨架

#Include <ahk2_lib\RapidOcr\RapidOcr> #Include <ahk2_lib\wincapture\wincapture> #Include <ahk2_lib\XL\XL> ocr := RapidOcr({ models: A_ScriptDir '\models' }) ; 初始化识别器 book := XL.New('xlsx'), sheet := book.addSheet('识别结果') ; 新建 Excel

预期结果:脚本能正常启动,不报错。易错点models路径必须包含det/rec/cls三个 onnx 模型和keys.txt,缺一个就会Throw

第 2 步:初始化屏幕捕获

dxcp := wincapture.DXGI() ; DXGI 桌面复制,速度快

预期结果:拿到一个屏幕捕获对象。易错点:DXGI 每进程只能有一个实例,重复DXGI()会冲突。

第 3 步:截取指定区域

box := Buffer(16, 0) ; 用 16 字节描述区域坐标 NumPut('uint', 0, 'uint', 0, 'uint', 400, 'uint', 200, box) bb := dxcp.captureAndSave(box) ; 截取左上角 400x200 区域 bb.save('capture.png') ; 存成临时图片

预期结果:目录里多出capture.png易错点:坐标超过屏幕范围会返回空,建议先MsgBox A_ScreenWidth确认分辨率。

第 4 步:识别图片文字

param := RapidOcr.OcrParam() param.doAngle := false ; 图片不是倾斜的,可关闭角度检测提速 res := ocr.ocr_from_file('capture.png', param) MsgBox res.text ; 查看识别全文

预期结果:弹出识别出的文字。易错点OcrParam()默认配置适合大多数场景,文字太小可调大box截取区域,别急着调参数。

第 5 步:把结果写进 Excel

lines := StrSplit(res.text, '`n') ; 按行拆分 for i, line in lines sheet['A' i] := line ; 逐行写入 A 列 book.save('result.xlsx') book := '' ; 释放 libxl 资源

预期结果:生成result.xlsx,每行一段识别文字。易错点book := ''这行很重要,libxl 靠对象销毁来保存并释放句柄,忘了写可能导出不完整。

第 6 步:加上定时循环

SetTimer () => CaptureAndSave(), 3000 ; 每 3 秒识别一次 CaptureAndSave() { bb := dxcp.captureAndSave(box) bb.save('capture.png') res := ocr.ocr_from_file('capture.png') sheet['A' (A_Index + 1)] := res.text ; 追加到下一行 }

预期结果:屏幕区域的文字被持续录入 Excel,形成滚动记录。易错点:循环里频繁建表会累积资源,实际使用时可以把book.save挪到定时器外部,最后统一写盘。

第 7 步:收尾释放资源

dxcp.release() ; 释放捕获对象(非必须,但推荐)

到这里,一个"屏幕监控 + 文字识别 + Excel 存储"的完整工具就落地了。同样的思路,把 Excel 换成CSQLite.ahk的数据库,就升级成了带检索能力的文档管理系统。

进阶与避坑

三条进阶玩法

  • 性能不够?MCode/Native/把计算密集的逻辑写成 C++ 编译成机器码嵌入,配合MCodeLoader.ahk直接调用,速度接近原生。参考MCode/example.ahk
  • 界面太土?WebView2/加载本地 HTML,配合HttpServer.ahkWebSocket.ahk做实时推送,就能拼出一个现代化的监控大屏。
  • 想玩系统级?Detours/支持 API 钩子,Native/支持 C++ 深度扩展,配合Yolo/的目标检测,完全可以做出游戏辅助或自动化测试框架。

⚠️ 常见问题

  1. DLL 位数不匹配:所有带 DLL 的模块都分32bit/64bit/,代码里通常用(A_PtrSize * 8) 'bit\'自动选择。如果你手动指定路径,务必和你的 AHK 版本位数一致,否则报"入口点找不到"。
  2. OCR 模型缺失RapidOcr/models/下的四个文件缺一不可。报No value is specified时,优先检查models目录路径和文件名。
  3. 资源没释放:libxl 的book、WebView2 的wvc、DXGI 的dxcp,用完都要置空或调用release()。这类库依赖析构函数回收句柄,忘了释放会越跑越卡。
  4. 异步方法忘了等待:WebView2 的异步方法都带Async后缀并返回 Promise,记得.await2(),直接调用拿不到结果,还会报"对象不支持此属性"。

从一个小工具开始试起来

ahk2_lib 的厉害之处在于:它把"专业开发"的门槛降到了"写脚本"的高度。你不用先学 C++、不用啃 API 文档,从今天起就可以用它把脑子里的想法一个个变成能用的工具。

行动建议:别贪多,先选一个你最关心的痛点——比如"把截图里的文字自动存成表格"——照着上面的实战走一遍。跑通的那一刻,你会发现 AutoHotkey V2 的能力,远比你想象的宽广。🚀

【免费下载链接】ahk2_lib项目地址: https://gitcode.com/gh_mirrors/ah/ahk2_lib

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

http://www.cnnetsun.cn/news/4030719.html

相关文章:

  • IT工单系统哪家好?2026年企业IT服务效率提升的关键抓手
  • 芯片封装技术全解析:从DIP到3D封装,硬件工程师选型指南
  • 如何高效对接高校科研成果与企业技术需求?
  • Win11Debloat系统优化工具实测:三步告别Windows系统臃肿
  • 告别逐帧手K:用 BoneAnimCopy 三步完成 Blender 骨骼动画重定向
  • 融合训练:提升大语言模型数学泛化能力的工程实践
  • 2026编程学习路径规划:从零到求职的系统化实战指南
  • 网站离线下载终极指南:3 步用 Python 把整个网站完整搬回本地
  • 【单片机课设毕设项目】基于 STM32 的多模式心率血氧监测声光报警装置设计 基于 STM32 的本地显示与远程管控一体化健康监测系统(013203)
  • 当动漫人物“入职”金融科技:IP数字化与虚拟经济的未来
  • Python 死锁排查全攻略:从线程卡死到锁依赖定位与工程化修复
  • FGO材料规划工具Chaldea:攒石、刷本、模拟战斗,一次理顺
  • Agent Skills:为AI编程助手注入工程化能力,让生成代码具备生产级质量
  • SAP内部订单修改:超越KO02,掌握ABAP函数模块与状态管理
  • IPV6技术详细解析
  • YOLO医学影像组织结构目标检测数据集-15878张
  • 工程师必看-PCB设计标准工艺要求(七)
  • 从零开始学Python:五个项目实战经验分享
  • “留学生吵架战斗力有多强?”哈哈哈包让老外破防的!
  • 前言:重新思考人工智
  • 零基础快速把照片变3D打印模型,免费开源的ImageToSTL了解一下
  • Google三篇论文:大数据基石GFS、MapReduce、BigTable核心思想解析
  • 在 Windows 上装安卓应用选哪家?APK Installer 轻量安卓应用安装器上手记
  • 【计算机毕业设计单片机案例】基于 STM32 单片机的阈值自定义心率血氧预警装置 基于 STM32 的 MAX30102 信号处理与无线 APP 控制系统(013203)
  • 网易云音乐直链解析 API:三步自建永久直链服务器
  • astribot pdf 【翻译】
  • J-Flash工程配置与固件下载实战指南:从零到一解决连接与烧录难题
  • Elasticsearch范围查询深度解析:从时区陷阱到性能优化实战
  • Hadoop下载与安装指南:从清华镜像到伪分布式环境搭建
  • BT下载慢得像老牛拉车?接入全网热门Tracker列表,让下载速度轻松起飞