一个基于AutoHotkey v2的强大自动化框架,整合了TaskBar和FindText功能。
AutomationFramework/
├── AutomationFramework.ahk # 主框架文件
├── Example_Usage.ahk # 使用示例
├── config.ini # 配置文件
├── README.md # 说明文档
└── AutomationFramework/ # 库文件目录
├── TaskBar.ahk # 任务栏监控库
└── FindText10.ahk # 图像文字识别库
双击运行 AutomationFramework.ahk
双击运行 Example_Usage.ahk
- F1: 快速截图
- F2: 启动文字识别工具
- F3: 显示任务状态
- F8: 开始自动化任务
- F9: 停止自动化任务
- F12: 显示使用说明
- Esc: 退出程序
- F4: 简单点击序列示例
- F5: 文字识别点击示例
- F6: 复杂自动化流程示例
- F7: 办公自动化示例
- F11: 显示示例菜单
- 支持多种任务类型
- 任务队列管理
- 批量任务执行
- 实时状态监控
task := AutoFramework.CreateClickTask("点击按钮", 100, 100, 1000)
AutoFramework.AddTask(task)task := AutoFramework.CreateFindTextTask("查找确定", "|<>*确定*", 0, 0, 0, 0, true, 1000)
AutoFramework.AddTask(task)task := AutoFramework.CreateWaitTask("等待2秒", 2000)
AutoFramework.AddTask(task)MyFunction() {
MsgBox("自定义操作")
}
task := AutoFramework.CreateCustomTask("自定义任务", MyFunction)
AutoFramework.AddTask(task)result := AutoFramework.WaitForText("|<>*加载完成*", 30)
if result.found {
; 文字已出现,执行后续操作
}if AutoFramework.WaitForTextDisappear("|<>*加载中*", 30) {
; 文字已消失,继续执行
}tasks := [
AutoFramework.CreateClickTask("点击1", 100, 100),
AutoFramework.CreateWaitTask("等待", 1000),
AutoFramework.CreateClickTask("点击2", 200, 200)
]
AutoFramework.BatchExecute(tasks); 1. 包含框架
#Include AutomationFramework.ahk
; 2. 清空任务列表
AutoFramework.ClearTasks()
; 3. 添加任务
AutoFramework.AddTask(AutoFramework.CreateClickTask("点击开始", 100, 100, 1000))
AutoFramework.AddTask(AutoFramework.CreateFindTextTask("查找确定", "|<>*确定*", 0, 0, 0, 0, true))
; 4. 开始执行
AutoFramework.StartAutomation(); 游戏自动化
AutoFramework.ClearTasks()
AutoFramework.AddTask(AutoFramework.CreateWaitTask("等待游戏启动", 5000))
AutoFramework.AddTask(AutoFramework.CreateFindTextTask("点击开始", "|<>*开始游戏*", 0, 0, 0, 0, true))
AutoFramework.AddTask(AutoFramework.CreateClickTask("选择角色", 300, 400, 2000))
AutoFramework.StartAutomation()[Settings]
LogEnabled=1 ; 启用日志
MaxLoops=100 ; 最大循环次数
DefaultDelay=100 ; 默认延迟
[Hotkeys]
StartKey=F8 ; 开始热键
StopKey=F9 ; 停止热键
ExitKey=Esc ; 退出热键- 自动创建日志目录:
logs/ - 日志文件格式:
automation_YYYYMMDD.log - 记录所有操作和错误信息
- 支持实时日志查看
; 在AutomationFramework类中添加新的执行方法
ExecuteNewTaskType(task) {
; 实现新任务类型的逻辑
}
; 在ExecuteTask方法的switch中添加新case
case "newtype":
this.ExecuteNewTaskType(task); 在类外部添加新热键
F10:: {
; 自定义操作
AutoFramework.ExecuteQuickTask(10)
}- 权限要求: 某些操作可能需要管理员权限
- 屏幕分辨率: FindText功能依赖屏幕分辨率,不同分辨率可能需要调整坐标
- 性能考虑: 大量任务执行时注意系统性能
- 错误处理: 建议在自定义函数中添加适当的错误处理
-
FindText不工作
- 检查AutomationFramework/FindText10.ahk是否存在
- 确认图像识别参数是否正确
-
TaskBar不显示
- 检查AutomationFramework/TaskBar.ahk是否存在
- 确认是否有GUI权限
-
热键冲突
- 检查是否有其他程序占用相同热键
- 可以修改config.ini中的热键设置
- 查看日志文件了解执行情况
- 使用F3查看任务状态
- 在自定义函数中添加MsgBox进行调试
如有问题或建议,请检查:
- 日志文件中的错误信息
- AHK2语法是否正确
- 库文件是否完整
版本: v1.0
兼容性: AutoHotkey v2.0+
作者: CodeBuddy