易语言通过百度ocr接口识别图片记录微信转账金额的代码
作者:易语言源码贝贝吧
今天小编就为大家分享一篇关于易语言通过百度ocr接口识别图片记录微信转账金额的代码,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
封包编码
.版本 2 .程序集 程序集1 .子程序 取内容, 文本型 .参数 封包, 文本型 .局部变量 a, 整数型 .局部变量 b, 整数型 .局部变量 ls, 文本型 .如果真 (寻找文本 (封包, “[]”, , 假) ≠ -1 或 寻找文本 (封包, “head”, , 假) ≠ -1 或 封包 = “”) 输出调试文本 (封包) 返回 (“”) .如果真结束 a = 寻找文本 (封包, “[”, , 假) .如果真 (a ≠ -1) a = a + 2 b = 倒找文本 (封包, “]”, , 假) .如果真 (b ≠ -1) b = b - 1 ls = 取文本中间 (封包, a, b - a) ls = 子文本替换 (ls, #引号 + “,” + #引号, “\u000d\u000a”, , , 真) .如果真结束 .如果真结束 返回 (asciiConvertNative (ls)) .子程序 asciiConvertNative, 文本型, , 将Ucs2码转换为Ansi码 (返回转换后的文本) .参数 文本, 文本型, , 欲转换的Ucs2码 .局部变量 p, 文本型 .局部变量 对象, 对象 .局部变量 js, 文本型 js = “function asciiConvertNative(s) {” + #换行符 + “var asciicode = s.split(” + #引号 + “\\u” + #引号 + “);” + #换行符 + “var nativeValue = asciicode[0];” + #换行符 + “for (var i = 1; i < asciicode.length; i++) {” + #换行符 + “var code = asciicode[i];” + #换行符 + “nativeValue += String.fromCharCode(parseInt(” + #引号 + “0x” + #引号 + “ + code.substring(0, 4)));” + #换行符 + “if (code.length > 4) {” + #换行符 + “nativeValue += code.substring(4, code.length);” + #换行符 + “}” + #换行符 + “}” + #换行符 + “return nativeValue;” + #换行符 + “}” 对象.创建 (“ScriptControl”, ) 对象.写属性 (“Language”, “JScript”) 对象.通用方法 (“Eval”, js) p = 对象.通用方法 (“Run”, “asciiConvertNative”, 文本, , , , ).取文本 () 返回 (p) .子程序 彗星URL编码, 文本型, , 返回已编码的URL .参数 Bin_URL, 文本型 .局部变量 局部_数据, 字节集 .局部变量 i, 整数型 .局部变量 ii, 文本型 局部_数据 = 到字节集 (Bin_URL) .计次循环首 (取字节集长度 (局部_数据), i) .如果 (到整数 (局部_数据 [i]) ≥ 48 且 到整数 (局部_数据 [i]) ≤ 57 或 到整数 (局部_数据 [i]) ≥ 65 且 到整数 (局部_数据 [i]) ≤ 90 或 到整数 (局部_数据 [i]) ≥ 65 且 到整数 (局部_数据 [i]) ≤ 90 或 到整数 (局部_数据 [i]) ≥ 97 且 到整数 (局部_数据 [i]) ≤ 122) ii = ii + 字符 (局部_数据 [i]) .否则 ii = ii + “%” + 取十六进制文本 (局部_数据 [i]) .如果结束 .计次循环尾 () 返回 (ii) .子程序 Base64编码, 文本型, , BASE64编码处理(返回编码后的文本) .参数 待编码数据, 字节集, , 待编码字节集 .局部变量 余数 .局部变量 临时, 字节型, , "3" .局部变量 变量 .局部变量 集合, 字节集 .局部变量 长度, 整数型 .局部变量 字符, 字节集 .局部变量 i 长度 = 取字节集长度 (待编码数据) .如果真 (长度 < 1) 返回 (“”) .如果真结束 余数 = 长度 % 3 .如果真 (余数 > 0) 待编码数据 = 待编码数据 + 取空白字节集 (3 - 余数) .如果真结束 长度 = 取字节集长度 (待编码数据) 字符 = 取空白字节集 (长度 × 4 ÷ 3) i = 1 集合 = 到字节集 (“ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/”) .变量循环首 (1, 长度, 3, 变量) 临时 [1] = 待编码数据 [变量] 临时 [2] = 待编码数据 [变量 + 1] 临时 [3] = 待编码数据 [变量 + 2] 字符 [i] = 集合 [右移 (临时 [1], 2) + 1] 字符 [i + 1] = 集合 [左移 (位与 (临时 [1], 3), 4) + 右移 (临时 [2], 4) + 1] 字符 [i + 2] = 集合 [左移 (位与 (临时 [2], 15), 2) + 右移 (临时 [3], 6) + 1] 字符 [i + 3] = 集合 [位与 (临时 [3], 63) + 1] i = i + 4 .变量循环尾 () .如果真 (余数 > 0) 长度 = 取字节集长度 (字符) .如果 (余数 = 1) 字符 [长度 - 1] = 取代码 (“=”, ) 字符 [长度] = 取代码 (“=”, ) .否则 字符 [长度] = 取代码 (“=”, ) .如果结束 .如果真结束 返回 (到文本 (字符))
微信转账记录金额导出数据的代码
此功能需要加载精易模块5.6
.版本 2 .支持库 shell .支持库 iext .程序集 窗口程序集_启动窗口 .程序集变量 微信句柄, 整数型 .程序集变量 阿信, 类_识图 .程序集变量 handwork, 整数型 .程序集变量 总收入, 整数型 .程序集变量 领包回复, 文本型 .程序集变量 自动回复, 文本型 .子程序 __启动窗口_创建完毕 .如果真 (文件是否存在 (取特定目录 (#系统桌面) + “Config.ini”) = 假) 写配置项 (取特定目录 (#系统桌面) + “Config.ini”, “恭喜发财”, “领包回复”, “已确定收款,即将充值”) 写配置项 (取特定目录 (#系统桌面) + “Config.ini”, “恭喜发财”, “自动回复”, “您好,有什么可以帮助您的”) .如果真结束 ' 读取句柄 微信句柄 = 进程_名取句柄 (“WeChat.exe”) handwork = GetDesktopWindow () ' 调试输出 (微信句柄) .如果真 (微信句柄 = -1) 选择框1.选中 = 假 .如果真结束 ' 读取配置 领包回复 = 读配置项 (取特定目录 (#系统桌面) + “Config.ini”, “恭喜发财”, “领包回复”, “已确定收款,即将充值”) 自动回复 = 读配置项 (取特定目录 (#系统桌面) + “Config.ini”, “恭喜发财”, “自动回复”, “您好,有什么可以帮助您的”) .子程序 百度云OCR识别图片, 文本型, , 论坛大佬转载的帖子 忘记谁了... .参数 图片, 字节集, , png、gif、jpg图片,尺寸不宜过大 .局部变量 XML对象, 对象 .局部变量 源代码, 字节集 .如果真 (XML对象.创建 (“Microsoft.XMLHTTP”, ) = 假) 返回 (“”) .如果真结束 XML对象.方法 (“open”, “POST”, “http://biji.baidu.com/inotes/api/hackathonocr”, 假, ) XML对象.方法 (“setRequestHeader”, “Content-Type”, “application/x-www-form-urlencoded”) XML对象.方法 (“send”, “text=data%3Aimage%2Fpng%3Bbase64%2CiVBORw0KGg&sig=47E%2BgkykZJ8HIncF%2BXugDwalZmI2mtP%2F3jy6nVZNCDUAAAAAAAAAAAAAAAAAAAAA&body=data%3Aimage%2Fpng%3Bbase64%2C” + 彗星URL编码 (Base64编码 (图片))) 处理事件 () 返回 (取内容 (XML对象.读文本属性 (“responseText”, ))) .子程序 备注识别, , , 备注识别备注识别备注识别 .局部变量 返回位置_备注, 精易_坐标 .局部变量 区域截图_备注, 字节集 .局部变量 返回文本_备注, 文本型 .如果真 (选择框2.选中 = 真) ' 首次激活自动回复 剪辑板_置文本 (自动回复) 键盘_组合按键 (#V键, #Ctrl键, , ) 键盘_单击 (#回车键, 1) 处理事件 () 键盘_单击 (#回车键, 1) .如果真结束 .如果真 (选择框3.选中 = 真) 播放音乐 (#提示音, ) .如果真结束 ' 截图 返回位置_备注 = 阿信.找图_从句柄 (, #备注标识, , ) 区域截图_备注 = 图片_屏幕区域截图 (返回位置_备注.横 + 50, 返回位置_备注.纵 - 15, 180, 30) 图片框1.图片 = 区域截图_备注 ' Ocr识别 返回文本_备注 = 百度云OCR识别图片 (区域截图_备注) 返回文本_备注 = 子文本替换 (返回文本_备注, “,”, “”, , , 真) 返回文本_备注 = 子文本替换 (返回文本_备注, “!”, “”, , , 真) 返回文本_备注 = 删全部空 (返回文本_备注) ' 调试输出 (返回文本_备注) 编辑框1.内容 = 返回文本_备注 .子程序 _按钮1_被单击 .局部变量 索引, 整数型 .局部变量 int, 整数型 .局部变量 金额, 整数型 .如果真 (编辑框1.内容 ≠ “暂无消息” 且 编辑框2.内容 ≠ “暂无转账”) ' 置剪辑版 .如果 (选择框5.选中 = 真) 剪辑板_置文本 (编辑框1.内容) .否则 剪辑板_置文本 (编辑框1.内容 + “-” + 编辑框2.内容) .如果结束 ' 加入超级列表框 索引 = 超级列表框1.插入表项 (-1, 编辑框1.内容, , , , ) 超级列表框1.置标题 (索引, 1, 编辑框2.内容) 超级列表框1.置标题 (索引, 2, 时间_到文本 (, 3, )) ' 计算总收入 总收入 = 总收入 + 到整数 (编辑框2.内容) 标签4.标题 = “已收转账数:” + 到文本 (超级列表框1.取表项数 ()) + “ | 总金额:” + 到文本 (总收入) 时钟1.时钟周期 = 2000 时钟2.时钟周期 = 6000 .如果真结束 .子程序 转账识别, , , 转账识别转账识别转账识别 .局部变量 区域截图_金额, 字节集 .局部变量 返回文本_金额, 文本型 .局部变量 返回位置_金额, 精易_坐标 .局部变量 确认收钱_位置, 精易_坐标 .局部变量 聊天框_坐标, 精易_坐标 返回位置_金额 = 阿信.找图_从句柄 (, #转账标识, , ) 处理事件 () 程序_延时 (200) 区域截图_金额 = 图片_屏幕区域截图 (返回位置_金额.横 + 46, 返回位置_金额.纵, 150, 30) ' 写到文件 (取特定目录 (#系统桌面) + “1.jpg”, 区域截图) 图片框2.图片 = 区域截图_金额 返回文本_金额 = 百度云OCR识别图片 (区域截图_金额) 程序_延时 (500) ' 点击转账 鼠标_单击 (handwork, 返回位置_金额.横, 返回位置_金额.纵, 1) ' 调试输出 (“返回位置”, 返回位置_金额.纵) 处理事件 () 程序_延时 (500) 确认收钱_位置 = 阿信.找图_从句柄 (, #确认收钱, , ) 处理事件 () 程序_延时 (1000) ' 调试输出 (“确认收钱”, 确认收钱_位置.横) .如果 (确认收钱_位置.横 ≠ -1) ' 点击收钱 鼠标_单击 (handwork, 确认收钱_位置.横, 确认收钱_位置.纵, 1) 程序_延时 (500) 处理事件 () 键盘_单击 (#Esc键, 1) 处理事件 () 程序_延时 (1000) .否则 键盘_单击 (#Esc键, 1) 处理事件 () 程序_延时 (1000) .如果结束 .如果真 (选择框4.选中 = 真) ' 领包回复 聊天框_坐标 = 阿信.找图_从句柄 (, #聊天框, , ) 程序_延时 (500) ' 调试输出 (“聊天框”, 聊天框_坐标.横) 鼠标_单击 (handwork, 聊天框_坐标.横, 聊天框_坐标.纵 + 20, 1) 程序_延时 (500) 剪辑板_置文本 (领包回复) 键盘_组合按键 (#V键, #Ctrl键, , ) 程序_延时 (500) 键盘_单击 (#回车键, 1) 处理事件 () .如果真结束 .如果真 (取文本左边 (返回文本_金额, 2) = “00”) 返回文本_金额 = “0.0” + 取文本右边 (返回文本_金额, 1) 编辑框2.内容 = 返回文本_金额 返回 () .如果真结束 返回文本_金额 = 取文本左边 (返回文本_金额, 取文本长度 (返回文本_金额) - 2) 编辑框2.内容 = 返回文本_金额 .子程序 _时钟2_周期事件 .局部变量 返回位置_金额, 精易_坐标 返回位置_金额 = 阿信.找图_从句柄 (, #转账标识, , ) .如果真 (返回位置_金额.横 = -1 且 返回位置_金额.纵 = -1) 编辑框2.内容 = “暂无转账” 返回 () .如果真结束 转账识别 () 时钟2.时钟周期 = 0 .子程序 _时钟1_周期事件, , , 监控消息识别备注 .局部变量 返回位置_消息, 精易_坐标 返回位置_消息 = 阿信.找图_从句柄 (, #消息标识, , ) ' 鼠标_移动 (, 返回位置.横, 返回位置.纵) ' 调试输出 (“消息标识符”, 返回位置_消息.横, 返回位置_消息.纵) .如果真 (返回位置_消息.横 = -1 且 返回位置_消息.纵 = -1) 返回 () .如果真结束 鼠标_单击 (handwork, 返回位置_消息.横, 返回位置_消息.纵, 1) 备注识别 () 时钟1.时钟周期 = 0 .子程序 _标签3_鼠标左键被放开, 逻辑型 .参数 横向位置, 整数型 .参数 纵向位置, 整数型 .参数 功能键状态, 整数型 .局部变量 错误率, 整数型 信息框 (“本程序调用百度OCR文字智能识别技术” + #换行符 + “如果识别出现错误,建议备注名中加上空格” + #换行符 + “比如:原备注名为 mx666 则改为 m x 6 6 6”, 0 + #信息图标, “提示:面向未来”) .子程序 _时钟3_周期事件 .局部变量 微信位置, 精易_矩形 .如果真 (微信句柄 = -1) 选择框1.选中 = 假 .如果真结束 .如果真 (选择框1.选中 = 真) .如果真 (选择框1.选中 = 真) 微信位置 = 窗口_取矩形 (微信句柄) 移动 (微信位置.右边 - 10, 微信位置.顶边 + 24, , ) .如果真结束 .如果真结束 .子程序 _选择框1_鼠标左键被放开, 逻辑型 .参数 横向位置, 整数型 .参数 纵向位置, 整数型 .参数 功能键状态, 整数型 .如果真 (微信句柄 = -1) 选择框1.选中 = 假 信息框 (“检测到您并没有打开微信” + #换行符 + “请先打开微信”, 0, “提示:您好”) .如果真结束 .子程序 __启动窗口_将被销毁 .局部变量 时间, 文本型 .局部变量 文件号, 整数型 .局部变量 int, 整数型 .局部变量 文本, 文本型 .如果 (信息框 (“您好” + #换行符 + “是否导出列表框金额相关数据?” + #换行符 + “点击是表示生成配置并导出,否则直接结束”, #是否钮 + #询问图标, “提示:是否导出数据”) = #是钮) 时间 = 到文本 (取现行时间 ()) 写到文件 (取特定目录 (#系统桌面) + 时间 + “.txt”, 到字节集 (“”)) 文件号 = 打开文件 (取特定目录 (#系统桌面) + 时间 + “.txt”, , ) .计次循环首 (超级列表框1.取表项数 (), int) 文本 = 超级列表框1.取标题 (int - 1, 0) + “-” + 超级列表框1.取标题 (int - 1, 1) + “-” + 超级列表框1.取标题 (int - 1, 2) 写文本行 (文件号, 文本) .计次循环尾 () 关闭文件 (文件号) .否则 结束 () .如果结束 .子程序 _监控消息_被选择 .局部变量 time, 整数型 .如果真 (监控消息.选中 = 真) 监控消息.选中 = 假 信息框 (“已撤销监控消息”, 0, “提示:成功”) 时钟1.时钟周期 = 0 返回 () .如果真结束 .如果真 (监控消息.选中 = 假) 监控消息.选中 = 真 .如果真 (Ms2000.选中 = 真) time = 2000 时钟1.时钟周期 = time 信息框 (“已开启监控消息,” + “时钟周期为” + 到文本 (time), 0, “提示:成功”) 返回 () .如果真结束 .如果真 (Ms3500.选中 = 真) time = 3500 时钟1.时钟周期 = time 信息框 (“已开启监控消息,” + “时钟周期为” + 到文本 (time), 0, “提示:成功”) 返回 () .如果真结束 .如果真 (Ms4900.选中 = 真) time = 4900 时钟1.时钟周期 = time 信息框 (“已开启监控消息,” + “时钟周期为” + 到文本 (time), 0, “提示:成功”) 返回 () .如果真结束 .如果真结束 .子程序 _Ms3500_被选择 Ms3500.选中 = 真 Ms2000.选中 = 假 Ms4900.选中 = 假 时钟1.时钟周期 = 3500 .子程序 _监控转账_被选择 .局部变量 TIME, 整数型 .如果真 (监控转账.选中 = 真) 监控转账.选中 = 假 信息框 (“已撤销监控转账”, 0, “提示:成功”) 时钟2.时钟周期 = 0 返回 () .如果真结束 .如果真 (监控转账.选中 = 假) 监控转账.选中 = 真 .如果真 (Ms5000.选中 = 真) TIME = 5000 时钟2.时钟周期 = TIME 信息框 (“已开启监控转账,” + “时钟周期为” + 到文本 (TIME), 0, “提示:成功”) 返回 () .如果真结束 .如果真 (Ms6000.选中 = 真) TIME = 6000 时钟2.时钟周期 = TIME 信息框 (“已开启监控转账,” + “时钟周期为” + 到文本 (TIME), 0, “提示:成功”) 返回 () .如果真结束 .如果真 (Ms7000.选中 = 真) TIME = 7000 时钟2.时钟周期 = TIME 信息框 (“已开启监控转账,” + “时钟周期为” + 到文本 (TIME), 0, “提示:成功”) 返回 () .如果真结束 .如果真结束 .子程序 _Ms2000_被选择 Ms2000.选中 = 真 Ms3500.选中 = 假 Ms4900.选中 = 假 时钟1.时钟周期 = 2000 .子程序 _Ms4900_被选择 Ms4900.选中 = 真 Ms2000.选中 = 假 Ms3500.选中 = 假 时钟1.时钟周期 = 4900 .子程序 _Ms5000_被选择 Ms5000.选中 = 真 Ms6000.选中 = 假 Ms7000.选中 = 假 时钟2.时钟周期 = 5000 .子程序 _Ms6000_被选择 Ms5000.选中 = 假 Ms6000.选中 = 真 Ms7000.选中 = 假 时钟2.时钟周期 = 6000 .子程序 _Ms7000_被选择 Ms5000.选中 = 假 Ms6000.选中 = 假 Ms7000.选中 = 真 时钟2.时钟周期 = 7000 .子程序 _Ms200_被选择 Ms200.选中 = 真 Ms500.选中 = 假 Ms1000.选中 = 假 时钟3.时钟周期 = 200 .子程序 _Ms500_被选择 Ms200.选中 = 假 Ms500.选中 = 真 Ms1000.选中 = 假 时钟3.时钟周期 = 500 .子程序 _Ms1000_被选择 Ms200.选中 = 假 Ms500.选中 = 假 Ms1000.选中 = 真 时钟3.时钟周期 = 1000
运行结果:
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。如果你想了解更多相关内容请查看下面相关链接