📚 知识库

09键码调用

作者: aklai 更新时间: 2026-01-13 02:06 浏览次数: 66

键码调用功能使用教程

概述

键码调用功能是脚本自动化中用于模拟键盘按键操作的核心功能。通过蓝牙HID设备连接,系统可以发送特定的键盘指令到目标设备,实现自动化的键盘操作。本系统提供了常用的键盘快捷键支持,专注于实用性和稳定性,而非全键盘覆盖。

支持的键码特性

  • 常用快捷键: 支持复制、粘贴、剪切、回车、删除等常用操作
  • 系统导航键: 支持HOME键、ESC键、菜单键等系统级操作
  • 蓝牙传输: 通过蓝牙HID协议确保操作的稳定性和兼容性
  • 智能延迟: 内置合理的按键延迟,模拟真实用户操作节奏
  • 错误处理: 完善的异常处理机制,确保脚本执行的稳定性

核心概念

键码调用 vs 其他操作

特性 点击操作 键码调用
操作目标 屏幕坐标点击 键盘按键模拟
应用场景 界面元素交互 快捷键操作、文本输入辅助
设备依赖 触摸屏设备 支持HID协议的设备
精确度要求 高(需要精确坐标) 中等(键码固定)
兼容性 依赖界面布局 跨应用通用

键码调用的工作原理

  1. 蓝牙连接: 确保设备已通过蓝牙HID协议连接
  2. 权限检查: 验证蓝牙权限和设备授权状态
  3. 传输发送: 通过蓝牙特征值发送键盘指令
  4. 按键模拟: 目标设备接收并执行键盘操作
  5. 释放操作: 发送按键释放指令,完成操作循环

修饰键组合

复制操作 (复制):
  键码组合: CTRL + C
  应用场景: 复制选中的文本或内容

粘贴操作 (粘贴):
  键码组合: CTRL + V  
  应用场景: 粘贴剪贴板内容

单键操作

回车键 (回车):
  应用场景: 确认输入、提交表单、换行

基础键码配置

在脚本中使用键码调用

1. HOME键操作

动作类型: HOME
功能描述: 返回到系统主屏幕
配置参数: 无需额外配置
执行时长: 约2秒(包含等待时间)
应用场景:
  - 重置应用状态到桌面
  - 脚本开始前的初始化操作
  - 异常情况下的兜底操作

配置示例:

动作1: HOME
  说明: "返回主屏幕,重置环境"
  预期结果: 设备返回到桌面或主屏幕界面

2. 回车键操作

动作类型: 回车
功能描述: 模拟键盘回车键
配置参数: 无需额外配置
执行时长: 约1秒
应用场景:
  - 表单提交确认
  - 搜索框执行搜索
  - 文本输入后的确认操作
  - 登录、注册等确认场景

配置示例:

动作1: 回车
  说明: "确认当前输入内容"
  预期结果: 触发当前焦点控件的确认操作

3. 粘贴操作

动作类型: 粘贴
功能描述: 执行剪贴板粘贴操作
配置参数: 
  - 粘贴模式选择
  - 文本内容设置
执行时长: 约1秒
应用场景:
  - 自动填充表单内容
  - 批量文本输入
  - 预设内容的快速输入

粘贴模式详解:

手动输入模式:

粘贴模式: 手动输入
配置方式: 直接在配置界面输入要粘贴的文本
适用场景: 固定文本内容的粘贴
优点: 简单直接,文本内容可控
缺点: 每次执行内容相同,缺乏变化性

配置示例:
  粘贴模式: 手动输入
  粘贴内容: "用户名123"
  说明: "在用户名输入框粘贴预设用户名"

文件读取模式:

粘贴模式: 从文件读取
配置方式: 选择包含多行文本的文件
适用场景: 需要变化内容或批量内容的粘贴
优点: 内容丰富,支持随机性
缺点: 需要预先准备文本文件

顺序读取 :
  - 每次执行都读取文件的第一行
  - 适合固定内容但从文件管理的场景
  
随机读取:
  - 每次执行随机读取文件中的一行
  - 适合需要内容变化的场景,如随机用户名、评论等

配置示例:
  粘贴模式: 从文件读取
  读取方式: 随机读取
  文件路径: /storage/emulated/0/Documents/usernames.txt
  说明: "随机粘贴用户名文件中的一个用户名"

键码配置示例

示例1: 登录表单自动填写

业务场景: 自动登录应用,填写用户名和密码

# 完整登录流程
动作1: 文字识别->点击
  检测目标: "用户名"
  说明: "点击用户名输入框"

动作2: 粘贴
  粘贴模式: 从文件随机读取
  文件路径: "/sdcard/Documents/usernames.txt"
  说明: "随机粘贴一个用户名"

动作3: 文字识别->点击
  检测目标: "密码"
  说明: "点击密码输入框"

动作4: 粘贴
  粘贴模式: 手动输入
  粘贴内容: "password123"
  说明: "粘贴密码"

动作5: 回车
  说明: "提交登录表单"

动作6: 等待
  等待时间: 3000ms
  说明: "等待登录结果"

执行特点: - 结合文字识别和键码操作 - 用户名使用随机内容增加真实性 - 密码使用固定内容确保登录成功 - 使用回车键替代点击登录按钮

示例2: 搜索操作自动化

业务场景: 在搜索应用中执行多次搜索操作

# 搜索流程循环
动作1: 循环开始
  循环次数: 5
  说明: "执行5次搜索操作"

动作2: 文字识别->点击
  检测目标: ["搜索", "搜索框", "Search"]
  说明: "点击搜索输入框"

动作3: 粘贴
  粘贴模式: 从文件随机读取
  文件路径: "/sdcard/Documents/search_keywords.txt"
  说明: "随机粘贴搜索关键词"

动作4: 回车
  说明: "执行搜索"

动作5: 等待
  等待时间: 3000-5000ms
  说明: "等待搜索结果加载"

动作6: 滑动
  方向: UP
  说明: "浏览搜索结果"

动作7: 等待
  等待时间: 2000-4000ms
  说明: "模拟查看结果时间"

动作8: HOME
  说明: "返回主屏幕,准备下次搜索"

动作9: 等待
  等待时间: 1000-2000ms
  说明: "等待主屏幕稳定"

动作10: 循环结束

执行特点: - 循环执行多次搜索操作 - 随机搜索关键词增加自然性 - 每次搜索后返回主屏幕重新开始 - 合理的等待时间模拟真实用户行为

示例3: 文本编辑自动化

业务场景: 在文本编辑器中批量输入和编辑内容

# 文本编辑流程
动作1: 文字识别->点击
  检测目标: "新建"
  说明: "创建新文档"

动作2: 等待
  等待时间: 1000ms
  说明: "等待编辑器打开"

动作3: 粘贴
  粘贴模式: 从文件顺序读取
  文件路径: "/sdcard/Documents/article_content.txt"
  说明: "粘贴文章内容"

动作4: 回车
  说明: "换行"

动作5: 回车
  说明: "再次换行,增加段落间距"

动作6: 粘贴
  粘贴模式: 手动输入
  粘贴内容: "--- 文章结束 ---"
  说明: "添加结束标记"

动作7: 文字识别->点击
  检测目标: ["保存", "Save"]
  说明: "保存文档"

动作8: 等待
  等待时间: 2000ms
  说明: "等待保存完成"

执行特点: - 文件读取和手动输入的组合使用 - 多次回车键实现格式控制 - 顺序读取确保内容的完整性

示例4: 复制粘贴操作链

业务场景: 在多个应用间复制粘贴内容

# 跨应用复制粘贴
动作1: 打开APP
  应用包名: "com.example.source_app"
  说明: "打开源应用"

动作2: 等待
  等待时间: 2000ms
  说明: "等待应用启动"

动作3: 文字识别->点击
  检测目标: "需要复制的内容"
  长按操作: true
  说明: "长按选择要复制的内容"

动作4: 文字识别->点击
  检测目标: ["复制", "复制"]
  说明: "点击复制按钮"

动作5: HOME
  说明: "返回主屏幕"

动作6: 打开APP
  应用包名: "com.example.target_app"
  说明: "打开目标应用"

动作7: 等待
  等待时间: 2000ms
  说明: "等待目标应用启动"

动作8: 文字识别->点击
  检测目标: "输入框"
  说明: "点击目标输入位置"

动作9: 粘贴
  粘贴模式: 使用剪贴板内容
  说明: "粘贴刚才复制的内容"

动作10: 回车
  说明: "确认输入"

执行特点: - 跨应用的复制粘贴操作 - 合理利用系统剪贴板 - HOME键作为应用切换的中转

高级键码技巧

组合键码操作

1. 键码与等待的组合

# 渐进式输入模拟
动作1: 粘贴
  粘贴内容: "用户名部分"
  说明: "输入用户名前半部分"

动作2: 等待
  等待时间: 500-1000ms
  说明: "模拟思考停顿"

动作3: 粘贴
  粘贴内容: "123"
  说明: "补充用户名后半部分"

动作4: 等待
  等待时间: 200-500ms
  说明: "短暂停顿"

动作5: 回车
  说明: "确认输入"

2. 键码与条件检测结合

# 智能表单填写
动作1: 粘贴
  粘贴内容: "test@example.com"
  说明: "输入邮箱地址"

动作2: 回车
  说明: "尝试提交或跳转到下一字段"

动作3: 条件控制
  条件类型: IF_THEN
  检测配置:
    检测类型: OCR文字检测
    检测目标: ["格式错误", "无效邮箱"]
  满足条件时操作: 调用动作组 "修正邮箱格式"

动作组 "修正邮箱格式":
  动作A1: 文字识别->点击
    检测目标: "邮箱输入框"
    说明: "重新点击邮箱框"

  动作A2: 粘贴
    粘贴内容: "valid.email@domain.com"
    说明: "输入正确格式的邮箱"

  动作A3: 回车
    说明: "重新提交"

3. 循环中的键码操作

# 批量数据输入
动作1: 循环开始
  循环次数: 10
  说明: "输入10条数据记录"

动作2: 粘贴
  粘贴模式: 从文件随机读取
  文件路径: "/sdcard/Documents/data_list.txt"
  说明: "随机粘贴一条数据"

动作3: 回车
  说明: "确认当前数据"

动作4: 等待
  等待时间: 1000-2000ms
  说明: "等待系统处理"

动作5: 文字识别->检测
  检测目标: ["下一条", "继续", "Next"]
  检测成功后操作: 继续循环
  检测失败后操作: 跳转到分组 "处理完成"

动作6: 循环结束

分组 "处理完成":
  动作B1: HOME
    说明: "数据输入完成,返回主屏幕"

错误处理与重试机制

1. 键码操作失败处理

# 带重试的粘贴操作
动作1: 粘贴
  粘贴模式: 手动输入
  粘贴内容: "重要数据"
  说明: "尝试粘贴重要数据"

动作2: 等待
  等待时间: 500ms
  说明: "等待粘贴完成"

动作3: 条件控制
  条件类型: IF_THEN_ELSE
  检测配置:
    检测类型: OCR文字检测
    检测目标: "重要数据"
  满足条件时操作: 调用动作组 "粘贴成功处理"
  不满足条件时操作: 调用动作组 "粘贴失败重试"

动作组 "粘贴成功处理":
  动作A1: 回车
    说明: "粘贴成功,确认输入"

动作组 "粘贴失败重试":
  动作B1: 等待
    等待时间: 1000ms
    说明: "等待系统稳定"

  动作B2: 粘贴
    粘贴模式: 手动输入
    粘贴内容: "重要数据"
    说明: "重试粘贴操作"

  动作B3: 回车
    说明: "重试后确认"

2. 网络延迟适应

# 适应网络延迟的键码操作
动作1: 粘贴
  粘贴内容: "搜索关键词"
  说明: "输入搜索内容"

动作2: 回车
  说明: "提交搜索"

动作3: 循环开始
  循环次数: 10
  说明: "最多等待10次检查结果"

动作4: 等待
  等待时间: 1000ms
  说明: "等待1秒检查结果"

动作5: 条件控制
  条件类型: IF_THEN
  检测配置:
    检测类型: OCR文字检测
    检测目标: ["搜索结果", "找到", "Results"]
  满足条件时操作: 跳转到分组 "搜索完成"

动作6: 循环结束

动作7: 文字识别->检测
  检测目标: ["网络错误", "连接失败"]
  检测成功后操作: 调用动作组 "网络重试"

分组 "搜索完成":
  动作C1: 滑动
    方向: UP
    说明: "浏览搜索结果"

动作组 "网络重试":
  动作D1: HOME
    说明: "返回主屏幕重新开始"

性能优化与最佳实践

键码操作优化

1. 减少不必要的键码调用

❌ 低效的做法:
动作1: 粘贴
  粘贴内容: "用户"
动作2: 粘贴
  粘贴内容: "名"
动作3: 粘贴
  粘贴内容: "123"

✅ 高效的做法:
动作1: 粘贴
  粘贴内容: "用户名123"

2. 合理设置等待时间

键码操作后的等待时间建议:
- 粘贴操作后: 500-1000ms
- 回车操作后: 1000-2000ms
- HOME操作后: 2000-3000ms
- 普通键码后: 200-500ms

3. 蓝牙连接状态检查

# 在关键键码操作前检查连接
动作1: 条件控制
  条件类型: IF_THEN_ELSE
  检测配置:
    检测类型: 蓝牙连接状态检测
  满足条件时操作: 继续执行键码操作
  不满足条件时操作: 调用动作组 "连接失败处理"

动作组 "连接失败处理":
  动作A1: 等待
    等待时间: 5000ms
    说明: "等待蓝牙重连"
  
  动作A2: 条件控制
    条件类型: 重试检测连接状态
    最大重试次数: 3

键码使用最佳实践

1. 文件管理原则

文本文件准备: - 使用UTF-8编码确保中文字符正确显示 - 每行一个完整的输入内容 - 避免空行和特殊字符 - 文件大小控制在合理范围内(建议<1MB)

文件路径管理: - 优先使用应用内部存储路径 - 定期清理不再使用的文本文件 - 为不同用途的文本文件分类存放

2. 内容安全原则

敏感信息处理:

❌ 不安全的做法:
粘贴内容: "真实密码123456"  # 明文存储敏感信息

✅ 安全的做法:
粘贴模式: 从文件随机读取
文件路径: "/data/data/com.yourapp/files/secure/passwords.txt"
# 使用应用内部存储,系统会自动加密

3. 兼容性考虑

不同设备适配: - 在不同Android版本上测试键码功能 - 考虑不同输入法的兼容性 - 针对特定应用调整键码使用策略

应用响应差异: - 为不同响应速度的应用设置不同的等待时间 - 使用条件检测确认键码操作效果 - 准备备用方案(如点击操作替代键码)

故障排除

常见键码问题

1. 粘贴内容不显示

症状: 执行粘贴操作但目标位置没有显示粘贴内容

可能原因: - 剪贴板为空或内容被其他应用覆盖 - 目标输入框不支持粘贴操作 - 蓝牙连接不稳定导致指令丢失

解决方案: 1. 在粘贴前检查剪贴板内容 2. 使用OCR检测确认粘贴结果 3. 增加操作后的等待时间 4. 检查蓝牙连接状态

2. 回车键无响应

症状: 执行回车操作但界面没有反应

可能原因: - 当前焦点不在输入控件上 - 应用不支持回车键操作 - 需要特定的确认按钮点击

解决方案: 1. 在回车前确保点击输入框获得焦点 2. 检查是否需要特定的确认按钮 3. 尝试使用OCR点击替代回车操作

3. HOME键操作失效

症状: HOME操作不能返回主屏幕

可能原因: - 应用屏蔽了HOME键功能 - 系统级权限限制 - 蓝牙HID协议不兼容

解决方案: 1. 检查设备的HID兼容性 2. 尝试多次执行HOME操作 3. 使用应用级的返回操作替代

4. 文件读取失败

症状: 粘贴文件内容时提示文件读取错误

可能原因: - 文件路径不正确或文件不存在 - 文件编码格式不支持 - 应用没有文件访问权限

解决方案: 1. 验证文件路径的正确性 2. 确保文件使用UTF-8编码 3. 检查应用的存储权限 4. 将文件复制到应用内部存储

调试工具和技巧

1. 键码操作监控

启用详细日志:

日志输出示例:
[脚本名] 动作#1 执行粘贴操作
[脚本名] 使用手动输入的文本: 用户名123
[脚本名] 粘贴操作完成
[脚本名] 动作#2 执行回车操作
[脚本名] 回车操作完成

2. 蓝牙连接诊断

连接状态检查:

蓝牙连接诊断信息:
- 蓝牙权限状态: 已授权/未授权
- 设备连接状态: 已连接/未连接/连接中
- HID服务状态: 可用/不可用
- 最后操作时间: 时间戳

3. 文件访问测试

文件读取验证:

文件访问诊断:
- 文件路径: /sdcard/Documents/test.txt
- 文件存在: 是/否
- 文件大小: XXX字节
- 读取权限: 有/无
- 文件编码: UTF-8/其他
- 内容预览: 前50个字符

高级应用案例

案例1: 自动化表单填写系统

业务需求: 批量填写注册表单,每次使用不同的用户信息

# 主流程:批量注册流程
动作1: 循环开始
  循环模式: 随机次数
  最小次数: 5
  最大次数: 10
  说明: "随机注册5-10个账户"

动作2: 文字识别->点击
  检测目标: ["注册", "Sign Up", "Register"]
  说明: "点击注册按钮"

动作3: 等待
  等待时间: 2000-3000ms
  说明: "等待注册页面加载"

动作4: 文字识别->点击
  检测目标: ["用户名", "Username", "用户名输入框"]
  说明: "点击用户名输入框"

动作5: 粘贴
  粘贴模式: 从文件随机读取
  文件路径: "/sdcard/Documents/usernames.txt"
  说明: "随机选择用户名"

动作6: 文字识别->点击
  检测目标: ["邮箱", "Email", "电子邮件"]
  说明: "点击邮箱输入框"

动作7: 粘贴
  粘贴模式: 从文件随机读取
  文件路径: "/sdcard/Documents/emails.txt"
  说明: "随机选择邮箱地址"

动作8: 文字识别->点击
  检测目标: ["密码", "Password", "设置密码"]
  说明: "点击密码输入框"

动作9: 粘贴
  粘贴模式: 手动输入
  粘贴内容: "SecurePass123!"
  说明: "输入标准密码"

动作10: 文字识别->点击
  检测目标: ["确认密码", "Confirm Password"]
  说明: "点击确认密码框"

动作11: 粘贴
  粘贴模式: 手动输入
  粘贴内容: "SecurePass123!"
  说明: "确认密码输入"

动作12: 回车
  说明: "提交注册表单"

动作13: 等待
  等待时间: 5000-8000ms
  说明: "等待注册处理完成"

动作14: 条件控制
  条件类型: IF_THEN_ELSE
  检测配置:
    检测类型: OCR文字检测
    检测目标: ["注册成功", "Registration Successful", "Welcome"]
  满足条件时操作: 调用动作组 "注册成功处理"
  不满足条件时操作: 调用动作组 "注册失败处理"

动作15: 循环结束

# 注册成功处理
动作组 "注册成功处理":
  动作A1: 等待
    等待时间: 2000ms
    说明: "等待成功页面稳定"
  
  动作A2: HOME
    说明: "返回主屏幕,准备下次注册"
  
  动作A3: 等待
    等待时间: 3000ms
    说明: "等待主屏幕稳定"

# 注册失败处理
动作组 "注册失败处理":
  动作B1: 文字识别->检测
    检测目标: ["用户名已存在", "邮箱已注册", "Username taken"]
    检测成功后操作: 调用动作组 "重试注册"
  
  动作B2: HOME
    说明: "其他错误,返回主屏幕"

# 重试注册处理
动作组 "重试注册":
  动作C1: 文字识别->点击
    检测目标: ["用户名", "Username"]
    说明: "重新点击用户名框"
  
  动作C2: 粘贴
    粘贴模式: 从文件随机读取
    文件路径: "/sdcard/Documents/usernames_backup.txt"
    说明: "使用备用用户名列表"
  
  动作C3: 回车
    说明: "重新提交"

执行特点: - 高度自动化的批量注册流程 - 随机用户信息确保每次注册的唯一性 - 完善的成功/失败分支处理 - 智能重试机制处理常见错误

案例2: 智能客服回复系统

业务需求: 自动回复客户消息,根据消息内容选择合适回复

# 主流程:客服消息处理
动作1: 循环开始
  循环模式: 无限循环
  循环条件: 检测到新消息时继续
  说明: "持续监控客户消息"

动作2: 条件控制
  条件类型: 等待
  检测配置:
    检测类型: 文字检测
    检测目标: ["新消息", "New Message", "未读"]
    最大等待时间: 30000ms
  成功后操作: 继续处理消息

动作3: 文字识别->点击
  检测目标: ["新消息", "未读消息"]
  说明: "点击查看新消息"

动作4: 等待
  等待时间: 1000-2000ms
  说明: "等待消息内容加载"

动作5: 条件控制
  条件类型: IF_THEN_ELSE
  检测配置:
    检测类型: OCR文字检测
    检测目标: ["价格", "多少钱", "费用", "价位"]
  满足条件时操作: 调用动作组 "价格咨询回复"
  不满足条件时操作: 继续检测其他类型

动作6: 条件控制
  条件类型: IF_THEN_ELSE
  检测配置:
    检测类型: OCR文字检测
    检测目标: ["发货", "快递", "物流", "配送"]
  满足条件时操作: 调用动作组 "物流咨询回复"
  不满足条件时操作: 继续检测其他类型

动作7: 条件控制
  条件类型: IF_THEN_ELSE
  检测配置:
    检测类型: OCR文字检测
    检测目标: ["退款", "退货", "换货", "售后"]
  满足条件时操作: 调用动作组 "售后服务回复"
  不满足条件时操作: 调用动作组 "通用回复"

动作8: 循环结束

# 价格咨询回复
动作组 "价格咨询回复":
  动作A1: 文字识别->点击
    检测目标: ["回复", "输入框", "消息输入"]
    说明: "点击回复输入框"
  
  动作A2: 粘贴
    粘贴模式: 从文件随机读取
    文件路径: "/sdcard/Documents/price_replies.txt"
    说明: "随机选择价格回复话术"
  
  动作A3: 回车
    说明: "发送回复消息"
  
  动作A4: 等待
    等待时间: 2000ms
    说明: "等待消息发送完成"

# 物流咨询回复
动作组 "物流咨询回复":
  动作B1: 文字识别->点击
    检测目标: ["回复", "输入框"]
    说明: "点击回复输入框"
  
  动作B2: 粘贴
    粘贴模式: 从文件随机读取
    文件路径: "/sdcard/Documents/logistics_replies.txt"
    说明: "随机选择物流回复话术"
  
  动作B3: 回车
    说明: "发送回复消息"

# 售后服务回复
动作组 "售后服务回复":
  动作C1: 文字识别->点击
    检测目标: ["回复", "输入框"]
    说明: "点击回复输入框"
  
  动作C2: 粘贴
    粘贴模式: 手动输入
    粘贴内容: "您好,关于售后问题我来为您处理,请稍等我查询一下您的订单信息。"
    说明: "使用标准售后回复"
  
  动作C3: 回车
    说明: "发送回复消息"
  
  动作C4: 等待
    等待时间: 3000ms
    说明: "给客户查询时间"
  
  动作C5: 粘贴
    粘贴模式: 从文件顺序读取
    文件路径: "/sdcard/Documents/service_solutions.txt"
    说明: "提供标准解决方案"
  
  动作C6: 回车
    说明: "发送解决方案"

# 通用回复
动作组 "通用回复":
  动作D1: 文字识别->点击
    检测目标: ["回复", "输入框"]
    说明: "点击回复输入框"
  
  动作D2: 粘贴
    粘贴模式: 从文件随机读取
    文件路径: "/sdcard/Documents/general_replies.txt"
    说明: "使用通用回复话术"
  
  动作D3: 回车
    说明: "发送通用回复"

执行特点: - 智能的消息分类和回复策略 - 多样化的回复内容避免机械化 - 特殊情况的专门处理流程 - 持续监控的循环机制

案例3: 自动化数据录入系统

业务需求: 将Excel表格数据录入到在线系统中

# 数据录入主流程
动作1: 文字识别->点击
  检测目标: ["数据录入", "新增记录", "Add Record"]
  说明: "进入数据录入界面"

动作2: 等待
  等待时间: 2000ms
  说明: "等待录入页面加载"

动作3: 循环开始
  循环模式: 文件行数循环
  数据文件: "/sdcard/Documents/data_to_input.txt"
  说明: "逐行处理数据文件"

动作4: 文字识别->点击
  检测目标: ["姓名", "Name", "姓名输入框"]
  说明: "点击姓名字段"

动作5: 粘贴
  粘贴模式: 从文件顺序读取
  文件路径: "/sdcard/Documents/names.txt"
  说明: "按顺序输入姓名"

动作6: 文字识别->点击
  检测目标: ["电话", "Phone", "联系电话"]
  说明: "点击电话字段"

动作7: 粘贴
  粘贴模式: 从文件顺序读取
  文件路径: "/sdcard/Documents/phones.txt"
  说明: "按顺序输入电话"

动作8: 文字识别->点击
  检测目标: ["地址", "Address", "详细地址"]
  说明: "点击地址字段"

动作9: 粘贴
  粘贴模式: 从文件顺序读取
  文件路径: "/sdcard/Documents/addresses.txt"
  说明: "按顺序输入地址"

动作10: 文字识别->点击
  检测目标: ["备注", "Remarks", "备注信息"]
  说明: "点击备注字段"

动作11: 粘贴
  粘贴模式: 从文件随机读取
  文件路径: "/sdcard/Documents/remarks.txt"
  说明: "随机添加备注信息"

动作12: 回车
  说明: "提交当前记录"

动作13: 等待
  等待时间: 2000-3000ms
  说明: "等待保存完成"

动作14: 条件控制
  条件类型: IF_THEN_ELSE
  检测配置:
    检测类型: OCR文字检测
    检测目标: ["保存成功", "Success", "已保存"]
  满足条件时操作: 调用动作组 "记录保存成功"
  不满足条件时操作: 调用动作组 "记录保存失败"

动作15: 循环结束

# 记录保存成功处理
动作组 "记录保存成功":
  动作A1: 文字识别->点击
    检测目标: ["继续添加", "Add Another", "新增"]
    说明: "点击继续添加按钮"
  
  动作A2: 等待
    等待时间: 1000ms
    说明: "等待新表单加载"

# 记录保存失败处理
动作组 "记录保存失败":
  动作B1: 文字识别->检测
    检测目标: ["必填项", "Required", "不能为空"]
    检测成功后操作: 调用动作组 "补充必填项"
  
  动作B2: 文字识别->检测
    检测目标: ["格式错误", "Invalid Format"]
    检测成功后操作: 调用动作组 "修正数据格式"
  
  动作B3: 等待
    等待时间: 2000ms
    说明: "等待错误信息显示完整"

# 补充必填项处理
动作组 "补充必填项":
  动作C1: 文字识别->点击
    检测目标: ["邮箱", "Email"]
    说明: "补充邮箱信息"
  
  动作C2: 粘贴
    粘贴模式: 手动输入
    粘贴内容: "default@example.com"
    说明: "使用默认邮箱"
  
  动作C3: 回车
    说明: "重新提交记录"

# 修正数据格式处理
动作组 "修正数据格式":
  动作D1: 文字识别->点击
    检测目标: ["电话", "Phone"]
    说明: "重新输入电话号码"
  
  动作D2: 粘贴
    粘贴模式: 手动输入
    粘贴内容: "138-0000-0000"
    说明: "使用标准格式电话"
  
  动作D3: 回车
    说明: "重新提交记录"

执行特点: - 结构化的数据录入流程 - 多字段的协调输入操作 - 完善的错误处理和重试机制 - 高效的批量数据处理能力

总结

键码调用功能是脚本自动化中重要的输入控制手段,通过蓝牙HID协议实现稳定可靠的键盘操作模拟。虽然支持的键码有限,但覆盖了最常用的操作需求。

关键要点

  1. 理解技术限制: 掌握支持的键码范围,合理规划自动化策略
  2. 重视连接稳定性: 确保蓝牙连接的可靠性,是键码功能正常工作的基础
  3. 文件管理规范: 合理组织文本文件,确保内容的安全性和可维护性
  4. 错误处理完备: 设计充分的异常处理机制,提高脚本的健壮性
  5. 性能优化考虑: 控制操作频率和等待时间,平衡效率和稳定性

最佳实践总结

  • 优先使用粘贴操作进行文本输入,比逐字符输入更稳定
  • 合理结合键码操作与其他功能,创造丰富的自动化流程
  • 重视文本文件的编码和格式,确保内容正确读取
  • 设计完善的条件检测机制,确认键码操作的执行效果
  • 针对不同应用和场景调整等待时间和重试策略

正确使用键码调用功能可以显著提升脚本的输入效率和用户体验!