手机自动化脚本按键精灵实战:随机布局安全数字键盘的自动化输入方案

很多 App、游戏里面都有随机安全键盘 ,每次弹出键盘,0‑9 数字按钮的位置都会打乱变化。这种键盘做了防护,直接用inputtextkeyPress这类命令是无法完成输入的,脚本不能直接往输入框写入内容,只能模拟点击屏幕上的数字按钮来完成填写。

比如验证码、计算题验证场景,算出结果之后,需要点击随机排布的数字按键提交。键盘布局每次都变,坐标不能写死,那脚本要如何定位到对应数字按钮?今天分享两种常用实现方案:找图识别法OCR 文字识别法

方法一:找图法,图片匹配定位数字按钮

核心思路:提前把 0‑9 十个数字按钮截图,每个图片以对应数字命名,例如0.png1.png一直到9.png。脚本运行时,循环去屏幕上查找对应数字图片,找到后获取坐标,执行点击操作。

步骤 1:准备素材

截取安全键盘上每一个数字按钮图片,命名为数字本身,放到脚本附件里。

步骤 2:拆分待输入数字

待输入的数字,例如66,不能直接整体处理,需要拆成单个字符66,逐个查找图片、逐个点击。

注意:存储数字的变量必须是字符串类型 ,否则Len()无法获取字符长度,可以用CStr()强制转为字符串。

拆分示例代码:

复制代码
Dim num = "66"
Dim n
For i = 1 To Len(num)
	n = Mid(num, i, 1)
	TracePrint n
Next
步骤 3:封装完整点击函数

把找图、判断、点击、延时封装成函数,后续直接调用,完整代码:

复制代码
Function 键盘点击(num)
    Dim intx,inty,n
    For i = 1 To Len(num)
        n = Mid(num, i, 1)
        FindPic 0, 0, 0, 0, "Attachment:"&n&".png","000000", 0, 0.9, intX, intY
        If intX > -1 And intY > -1 Then 
            tap intx,inty
        End If
        Delay 300
    Next
End Function

调用示例:Call 键盘点击("66"),即可自动依次点击两个数字 6。

优缺点:

✅ 识别稳定,对环境光线、界面变化容错好;

❌ 需要提前准备 10 张截图素材,如果按钮样式更新,截图就要重新制作。

方法二:OCR 文字识别,直接读取键盘上数字文本

OCR 方案不需要提前截图,直接框选安全键盘所在区域,调用OcrEx识别区域内所有文字,解析返回结果,拿到数字文本 + 对应 X、Y 屏幕坐标,构建数字‑坐标映射表,之后按需要点击对应坐标。

1、OCR 获取键盘识别结果

指定键盘区域,执行识别,返回的表格数据包含文本、置信度、x/y 坐标等信息。

复制代码
Dim tb = OcrEx(113,394,427,612)
TracePrint encode.TableToJson(tb)
For i = 1 To Len(tb)
TracePrint tb[i]["text"]
Next

输出样例(节选):

复制代码
[
{"h":35,"score":0.52350407838821,"text":"查除","w":57,"x":358,"y":410},
{"h":31,"score":0.99966430664062,"text":"确认","w":56,"x":357,"y":559},
{"h":33,"score":0.99936264753342,"text":"4","w":27,"x":296,"y":559},
{"h":34,"score":0.99967694282532,"text":"5","w":27,"x":138,"y":484},
{"h":35,"score":0.99971395730972,"text":"2","w":26,"x":139,"y":410},
{"h":35,"score":0.99921548366547,"text":"6","w":26,"x":218,"y":557},
{"h":32,"score":0.99972718954086,"text":"3","w":25,"x":218,"y":486},
{"h":34,"score":0.60895961523056,"text":"8","w":25,"x":296,"y":411},
{"h":33,"score":0.96144515275955,"text":"7","w":25,"x":218,"y":411},
{"h":35,"score":0.99800330400467,"text":"9","w":24,"x":139,"y":558},
{"h":31,"score":0.83861255645752,"text":"0","w":22,"x":376,"y":486},
{"h":31,"score":0.99609309434891,"text":"1","w":20,"x":298,"y":486}
]

返回结果里面有 "确认" 这类无关文字,我们只需要保留数字,以及它的 x、y 坐标。

2、处理 OCR 结果,构建数字坐标数组

两种存储格式,大家按需选择。

格式 A:键值对,arr["1"] = {x,y},数字文本作为下标

复制代码
Dim arr = {null}
Dim tb = OcrEx(113,394,427,612)
TracePrint encode.TableToJson(tb)
For i = 1 To Len(tb)
	TracePrint tb[i]["text"]
	//判断识别内容是不是数字,是数字就存入数组
	If IsNumeric(tb[i]["text"]) Then
 		arr[tb[i]["text"]] = {tb[i]["x"],tb[i]["y"]}
	End If
Next
TracePrint encode.TableToJson(arr)

输出效果:

复制代码
[[376,486],[298,486],[139,410],[218,486],[296,559],[138,484],[218,557],[218,411],[296,411],[139,558]]

格式 B:数组下标对应数字,arr[1]={x,y},我个人更推荐这种写法

注意:按键精灵数组下标默认从 1 开始,数字 0 会存放在 arr (0) 位置。

复制代码
Dim arr = {null}
Dim tb = OcrEx(113,394,427,612)
TracePrint encode.TableToJson(tb)
For i = 1 To Len(tb)
	TracePrint tb[i]["text"]
	If IsNumeric(tb[i]["text"]) Then
        arr(cint(tb[i]["text"])) = {tb[i]["x"],tb[i]["y"]}
	End If
Next
TracePrint encode.TableToJson(arr)

3、拆分数字,循环点击按钮

拿到数字坐标映射数组之后,同样拆分输入字符串,逐个取出坐标执行点击。

复制代码
Dim arr = {null}
Dim tb = OcrEx(113,394,427,612)
For i = 1 To Len(tb)
	If IsNumeric(tb[i]["text"]) Then
        arr(cint(tb[i]["text"])) = {tb[i]["x"],tb[i]["y"]}
	End If
Next

Dim num = "66"
Dim n
For i = 1 To Len(num)
	n = cint(Mid(num, i, 1))
	TracePrint arr[n][1],arr[n][2]
	tap arr[n][1],arr[n][2]
	Delay 300
Next

优缺点:

✅ 无需准备图片素材,键盘样式小幅改动也能兼容;

❌ OCR 识别受字体、清晰度影响,偶尔识别出错,需要设置置信度过滤低可信度结果。

两种方案怎么选?

  1. 界面稳定,数字按钮样式不变 → 优先找图法,识别准确率高,适合长期使用;

  2. 不想做截图素材、界面经常微调 → 优先 OCR 识别法,开发速度更快,需要做好容错判断。

常见踩坑总结

  1. 待输入数字一定要转字符串,如果是数字类型,Len()函数获取不到字符长度;

  2. 找图的相似度参数,根据实际界面调整,不要设置过高或者过低;

  3. OCR 务必框选精准,只框选键盘区域,减少无关文字干扰识别;

  4. 每次点击之后加上延时,模拟真人操作,防止操作过快被系统风控。

感谢作者三分钟学堂的思路分享,按键精灵提供了专业级的安卓脚本开发软件。它支持可视化的安卓脚本录制,也允许进阶用户进行手动的安卓脚本编写与安卓脚本制作。最核心的优势在于其免root脚本开发能力------基于安卓系统的无障碍脚本服务,无需获取Root权限即可实现安卓自动连点、模拟滑动等操作。开发完成的脚本,还可通过内置的安卓脚本打包工具,一键打包成独立APK,方便分享或商用。针对苹果脚本(iOS脚本)需求,按键精灵也推出了对应的iOS脚本开发软件。在越狱环境下,它提供了完整的iOS越狱脚本开发方案,支持iOS越狱脚本录制、iOS越狱脚本编写、iOS越狱脚本制作,并可通过iOS越狱脚本打包工具生成文件。同时,它也内置了iOS连点器功能,让iOS自动连点变得简单易行。无论是安卓还是苹果,无论你需要的是简单的手机自动连点,还是复杂的手游脚本,按键精灵都提供了从开发、录制、编写到打包的完整工具链,是移动端自动化利器。

相关推荐
新时代牛马34 分钟前
Linux 信号处理完整篇:从sigaction、掩码到内核发送与可重入排障
linux·运维·信号处理
lpfasd12341 分钟前
Docker存储清理与防膨胀实践
运维·docker·容器
每天被AI救一次42 分钟前
WorkBuddy 会议自动化实战:从腾讯会议转写到待办系统的完整链路(附全套提示词)
运维·自动化·腾讯会议
程序员梅雨1 小时前
Linux & Shell 实用干货
linux·运维·服务器·后端·面试·php
吴声子夜歌1 小时前
编写Shell脚本——自顶向下设计
linux·运维·shell
林墨聊AIGC1 小时前
AI视频怎么做跳舞的动作效果:从入门到精通的舞蹈动画制作指南
大数据·人工智能·自动化·aigc·音视频
XR1234567881 小时前
医院无线整网高密覆盖选型深度解析
运维·网络
新时代牛马1 小时前
嵌入式 Linux 蓝牙框架完整篇:从 HCI、L2CAP 到BlueZ 用户态
linux·运维·服务器
weixin_444579302 小时前
Docker(下):镜像仓库管理
运维·docker·容器
码农coding2 小时前
android12 状态栏图标的加载流程
android