首页 > 编程 > 易语言 > 正文

易语言通过百度ocr接口识别图片记录微信转账金额的代码

2024-07-21 23:02:47
字体:
来源:转载
供稿:网友

封包编码

.版本 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

运行结果:

易语言,微信,百度,识别,转账,记录

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对VeVb武林网的支持。


注:相关教程知识阅读请移步到易语言教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表