Skip to content

phoenixlucky/AutoHotkey

Repository files navigation

AHK2 自动化框架

一个基于AutoHotkey v2的强大自动化框架,整合了TaskBar和FindText功能。

📁 文件结构

AutomationFramework/
├── AutomationFramework.ahk    # 主框架文件
├── Example_Usage.ahk          # 使用示例
├── config.ini                 # 配置文件
├── README.md                  # 说明文档
└── AutomationFramework/       # 库文件目录
    ├── TaskBar.ahk           # 任务栏监控库
    └── FindText10.ahk        # 图像文字识别库

🚀 快速开始

1. 运行主框架

双击运行 AutomationFramework.ahk

2. 运行示例

双击运行 Example_Usage.ahk

⌨️ 热键控制

主框架热键 (AutomationFramework.ahk)

  • F1: 快速截图
  • F2: 启动文字识别工具
  • F3: 显示任务状态
  • F8: 开始自动化任务
  • F9: 停止自动化任务
  • F12: 显示使用说明
  • Esc: 退出程序

示例热键 (Example_Usage.ahk)

  • F4: 简单点击序列示例
  • F5: 文字识别点击示例
  • F6: 复杂自动化流程示例
  • F7: 办公自动化示例
  • F11: 显示示例菜单

🎯 主要功能

1. 任务管理系统

  • 支持多种任务类型
  • 任务队列管理
  • 批量任务执行
  • 实时状态监控

2. 任务类型

点击任务

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)

3. 高级功能

等待文字出现

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()

🔧 配置说明

config.ini 配置项

[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)
}

⚠️ 注意事项

  1. 权限要求: 某些操作可能需要管理员权限
  2. 屏幕分辨率: FindText功能依赖屏幕分辨率,不同分辨率可能需要调整坐标
  3. 性能考虑: 大量任务执行时注意系统性能
  4. 错误处理: 建议在自定义函数中添加适当的错误处理

🔍 故障排除

常见问题

  1. FindText不工作

    • 检查AutomationFramework/FindText10.ahk是否存在
    • 确认图像识别参数是否正确
  2. TaskBar不显示

    • 检查AutomationFramework/TaskBar.ahk是否存在
    • 确认是否有GUI权限
  3. 热键冲突

    • 检查是否有其他程序占用相同热键
    • 可以修改config.ini中的热键设置

调试技巧

  1. 查看日志文件了解执行情况
  2. 使用F3查看任务状态
  3. 在自定义函数中添加MsgBox进行调试

📞 技术支持

如有问题或建议,请检查:

  1. 日志文件中的错误信息
  2. AHK2语法是否正确
  3. 库文件是否完整

版本: v1.0
兼容性: AutoHotkey v2.0+
作者: CodeBuddy

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published