本帖最后由 roadma 于 2022-3-16 16:04 编辑
希望通过E程序完善的雷电模拟器命令行指令
1. 屏幕取色
2. 色彩比对
3. 屏幕截图(验证码需要)
4. 文本识别
...
这个帖子主要介绍的是如何进行模拟器验证码识别, 最初考虑的是在线验证码识别的方案, 可惜不理想, 后来找到一个本地验证码识别的模块(飞蚁, 这里表示一下感谢), 识别的速度和准确度都还可以, 就用它了, 不过有一点麻烦就是控制台命令输出时,它输出一大堆调试日志信息, 影响了最终呈现效果, 正在考虑如何避免它, 目前采用新建一个控制台程序SCode.exe,然后在本程序中用控制台管道把它包起来,这样就可以过滤掉日志信息了, 这种处理方式有些笨, 解决方案变得不简洁了, 将来再考虑优化吧, 现在先这样吧.
LD2 captCha 40,300,400,80
[captCha]--验证码参数
[40,300,400,80]--屏幕验证码区域左上角坐标X, Y, 长宽w, h
各参数之间用空格分隔
代码如下:
如果真 (取数组成员数 (lineInfo ) = 2 且 到大写 (lineInfo [1 ]) = “CAPTCHA”) 如果真 (模拟器截屏字符流 (图片字节集 ) = 假)标准输出 (, “FALSE”)剪辑板_置文本 (“FALSE”)返回 (0 )调试输出 (“图片大小: ” + 到文本 (取字节集长度 (图片字节集)))w = 图片_取宽度 (图片字节集 )h = 图片_取高度 (图片字节集 )图片字节集 = 图片_转换Ex (图片字节集, 1, , 真)调试输出 (“图像尺寸: ” + 到文本 (w ) + “,” + 到文本 (h )) 清除剪辑板 ()rect = 分割文本 (lineInfo [2 ], “,”, )剪辑板_置图片 (图片_取图片区域 (图片字节集, 到整数 (rect [1 ]), 到整数 (rect [2 ]), 到整数 (rect [3 ]), 到整数 (rect [4 ])) )运行控制台程序 (取运行目录 () + “\SCode.exe”, tmp, , )标准输出 (, tmp )剪辑板_置文本 (tmp )返回 (0 )
变量名 | 类 型 | 静态 | 数组 | 备 注 | 验证码 | 文本型 | | | 图片 | 字节集 | | | w | 整数型 | | | 验证码加载 ()图片 = 剪辑板_取图片 (0 )图片 = 图片_到24位图 (图片 ) 验证码 = 验证码识别 (图片 )清除剪辑板 ()标准输出 (, 验证码 )剪辑板_置文本 (验证码 )验证码卸载 ()返回 (0 )
验证码识别模块文件超过3M大小限制, 现放在网盘中链接:[url=链接:https://pan.baidu.com/s/1J78rykq80Ao8yfq95NmyPQ?pwd=g99p 提取码:g99p]链接:https://pan.baidu.com/s/1J78rykq80Ao8yfq95NmyPQ?pwd=g99p 提取码:g99p[/url]
雷电命令扩展0.4.7z
(1.04 MB, 下载次数: 18)
|