易語言通過百度ocr接口識別圖片記錄微信轉賬金額的代碼
更新時間:2018年11月28日 11:18:15 作者:易語言源碼貝貝吧
今天小編就為大家分享一篇關于易語言通過百度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;” + #換行符 + “}”
對象.創(chuàng)建 (“ScriptControl”, )
對象.寫屬性 (“Language”, “JScript”)
對象.通用方法 (“Eval”, js)
p = 對象.通用方法 (“Run”, “asciiConvertNative”, 文本, , , , ).取文本 ()
返回 (p)
.子程序 彗星URL編碼, 文本型, , 返回已編碼的URL
.參數 Bin_URL, 文本型
.局部變量 局部_數據, 字節(jié)集
.局部變量 i, 整數型
.局部變量 ii, 文本型
局部_數據 = 到字節(jié)集 (Bin_URL)
.計次循環(huán)首 (取字節(jié)集長度 (局部_數據), i)
.如果 (到整數 (局部_數據 [i]) ≥ 48 且 到整數 (局部_數據 [i]) ≤ 57 或 到整數 (局部_數據 [i]) ≥ 65 且 到整數 (局部_數據 [i]) ≤ 90 或 到整數 (局部_數據 [i]) ≥ 65 且 到整數 (局部_數據 [i]) ≤ 90 或 到整數 (局部_數據 [i]) ≥ 97 且 到整數 (局部_數據 [i]) ≤ 122)
ii = ii + 字符 (局部_數據 [i])
.否則
ii = ii + “%” + 取十六進制文本 (局部_數據 [i])
.如果結束
.計次循環(huán)尾 ()
返回 (ii)
.子程序 Base64編碼, 文本型, , BASE64編碼處理(返回編碼后的文本)
.參數 待編碼數據, 字節(jié)集, , 待編碼字節(jié)集
.局部變量 余數
.局部變量 臨時, 字節(jié)型, , "3"
.局部變量 變量
.局部變量 集合, 字節(jié)集
.局部變量 長度, 整數型
.局部變量 字符, 字節(jié)集
.局部變量 i
長度 = 取字節(jié)集長度 (待編碼數據)
.如果真 (長度 < 1)
返回 (“”)
.如果真結束
余數 = 長度 % 3
.如果真 (余數 > 0)
待編碼數據 = 待編碼數據 + 取空白字節(jié)集 (3 - 余數)
.如果真結束
長度 = 取字節(jié)集長度 (待編碼數據)
字符 = 取空白字節(jié)集 (長度 × 4 ÷ 3)
i = 1
集合 = 到字節(jié)集 (“ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/”)
.變量循環(huán)首 (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
.變量循環(huán)尾 ()
.如果真 (余數 > 0)
長度 = 取字節(jié)集長度 (字符)
.如果 (余數 = 1)
字符 [長度 - 1] = 取代碼 (“=”, )
字符 [長度] = 取代碼 (“=”, )
.否則
字符 [長度] = 取代碼 (“=”, )
.如果結束
.如果真結束
返回 (到文本 (字符))
微信轉賬記錄金額導出數據的代碼
此功能需要加載精易模塊5.6
.版本 2
.支持庫 shell
.支持庫 iext
.程序集 窗口程序集_啟動窗口
.程序集變量 微信句柄, 整數型
.程序集變量 阿信, 類_識圖
.程序集變量 handwork, 整數型
.程序集變量 總收入, 整數型
.程序集變量 領包回復, 文本型
.程序集變量 自動回復, 文本型
.子程序 __啟動窗口_創(chuàng)建完畢
.如果真 (文件是否存在 (取特定目錄 (#系統(tǒng)桌面) + “Config.ini”) = 假)
寫配置項 (取特定目錄 (#系統(tǒng)桌面) + “Config.ini”, “恭喜發(fā)財”, “領包回復”, “已確定收款,即將充值”)
寫配置項 (取特定目錄 (#系統(tǒng)桌面) + “Config.ini”, “恭喜發(fā)財”, “自動回復”, “您好,有什么可以幫助您的”)
.如果真結束
' 讀取句柄
微信句柄 = 進程_名取句柄 (“WeChat.exe”)
handwork = GetDesktopWindow ()
' 調試輸出 (微信句柄)
.如果真 (微信句柄 = -1)
選擇框1.選中 = 假
.如果真結束
' 讀取配置
領包回復 = 讀配置項 (取特定目錄 (#系統(tǒng)桌面) + “Config.ini”, “恭喜發(fā)財”, “領包回復”, “已確定收款,即將充值”)
自動回復 = 讀配置項 (取特定目錄 (#系統(tǒng)桌面) + “Config.ini”, “恭喜發(fā)財”, “自動回復”, “您好,有什么可以幫助您的”)
.子程序 百度云OCR識別圖片, 文本型, , 論壇大佬轉載的帖子 忘記誰了...
.參數 圖片, 字節(jié)集, , png、gif、jpg圖片,尺寸不宜過大
.局部變量 XML對象, 對象
.局部變量 源代碼, 字節(jié)集
.如果真 (XML對象.創(chuàng)建 (“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”, )))
.子程序 備注識別, , , 備注識別備注識別備注識別
.局部變量 返回位置_備注, 精易_坐標
.局部變量 區(qū)域截圖_備注, 字節(jié)集
.局部變量 返回文本_備注, 文本型
.如果真 (選擇框2.選中 = 真)
' 首次激活自動回復
剪輯板_置文本 (自動回復)
鍵盤_組合按鍵 (#V鍵, #Ctrl鍵, , )
鍵盤_單擊 (#回車鍵, 1)
處理事件 ()
鍵盤_單擊 (#回車鍵, 1)
.如果真結束
.如果真 (選擇框3.選中 = 真)
播放音樂 (#提示音, )
.如果真結束
' 截圖
返回位置_備注 = 阿信.找圖_從句柄 (, #備注標識, , )
區(qū)域截圖_備注 = 圖片_屏幕區(qū)域截圖 (返回位置_備注.橫 + 50, 返回位置_備注.縱 - 15, 180, 30)
圖片框1.圖片 = 區(qū)域截圖_備注
' Ocr識別
返回文本_備注 = 百度云OCR識別圖片 (區(qū)域截圖_備注)
返回文本_備注 = 子文本替換 (返回文本_備注, “,”, “”, , , 真)
返回文本_備注 = 子文本替換 (返回文本_備注, “!”, “”, , , 真)
返回文本_備注 = 刪全部空 (返回文本_備注)
' 調試輸出 (返回文本_備注)
編輯框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
.如果真結束
.子程序 轉賬識別, , , 轉賬識別轉賬識別轉賬識別
.局部變量 區(qū)域截圖_金額, 字節(jié)集
.局部變量 返回文本_金額, 文本型
.局部變量 返回位置_金額, 精易_坐標
.局部變量 確認收錢_位置, 精易_坐標
.局部變量 聊天框_坐標, 精易_坐標
返回位置_金額 = 阿信.找圖_從句柄 (, #轉賬標識, , )
處理事件 ()
程序_延時 (200)
區(qū)域截圖_金額 = 圖片_屏幕區(qū)域截圖 (返回位置_金額.橫 + 46, 返回位置_金額.縱, 150, 30)
' 寫到文件 (取特定目錄 (#系統(tǒng)桌面) + “1.jpg”, 區(qū)域截圖)
圖片框2.圖片 = 區(qū)域截圖_金額
返回文本_金額 = 百度云OCR識別圖片 (區(qū)域截圖_金額)
程序_延時 (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_周期事件, , , 監(jiān)控消息識別備注
.局部變量 返回位置_消息, 精易_坐標
返回位置_消息 = 阿信.找圖_從句柄 (, #消息標識, , )
' 鼠標_移動 (, 返回位置.橫, 返回位置.縱)
' 調試輸出 (“消息標識符”, 返回位置_消息.橫, 返回位置_消息.縱)
.如果真 (返回位置_消息.橫 = -1 且 返回位置_消息.縱 = -1)
返回 ()
.如果真結束
鼠標_單擊 (handwork, 返回位置_消息.橫, 返回位置_消息.縱, 1)
備注識別 ()
時鐘1.時鐘周期 = 0
.子程序 _標簽3_鼠標左鍵被放開, 邏輯型
.參數 橫向位置, 整數型
.參數 縱向位置, 整數型
.參數 功能鍵狀態(tài), 整數型
.局部變量 錯誤率, 整數型
信息框 (“本程序調用百度OCR文字智能識別技術” + #換行符 + “如果識別出現錯誤,建議備注名中加上空格” + #換行符 + “比如:原備注名為 mx666 則改為 m x 6 6 6”, 0 + #信息圖標, “提示:面向未來”)
.子程序 _時鐘3_周期事件
.局部變量 微信位置, 精易_矩形
.如果真 (微信句柄 = -1)
選擇框1.選中 = 假
.如果真結束
.如果真 (選擇框1.選中 = 真)
.如果真 (選擇框1.選中 = 真)
微信位置 = 窗口_取矩形 (微信句柄)
移動 (微信位置.右邊 - 10, 微信位置.頂邊 + 24, , )
.如果真結束
.如果真結束
.子程序 _選擇框1_鼠標左鍵被放開, 邏輯型
.參數 橫向位置, 整數型
.參數 縱向位置, 整數型
.參數 功能鍵狀態(tài), 整數型
.如果真 (微信句柄 = -1)
選擇框1.選中 = 假
信息框 (“檢測到您并沒有打開微信” + #換行符 + “請先打開微信”, 0, “提示:您好”)
.如果真結束
.子程序 __啟動窗口_將被銷毀
.局部變量 時間, 文本型
.局部變量 文件號, 整數型
.局部變量 int, 整數型
.局部變量 文本, 文本型
.如果 (信息框 (“您好” + #換行符 + “是否導出列表框金額相關數據?” + #換行符 + “點擊是表示生成配置并導出,否則直接結束”, #是否鈕 + #詢問圖標, “提示:是否導出數據”) = #是鈕)
時間 = 到文本 (取現行時間 ())
寫到文件 (取特定目錄 (#系統(tǒng)桌面) + 時間 + “.txt”, 到字節(jié)集 (“”))
文件號 = 打開文件 (取特定目錄 (#系統(tǒng)桌面) + 時間 + “.txt”, , )
.計次循環(huán)首 (超級列表框1.取表項數 (), int)
文本 = 超級列表框1.取標題 (int - 1, 0) + “-” + 超級列表框1.取標題 (int - 1, 1) + “-” + 超級列表框1.取標題 (int - 1, 2)
寫文本行 (文件號, 文本)
.計次循環(huán)尾 ()
關閉文件 (文件號)
.否則
結束 ()
.如果結束
.子程序 _監(jiān)控消息_被選擇
.局部變量 time, 整數型
.如果真 (監(jiān)控消息.選中 = 真)
監(jiān)控消息.選中 = 假
信息框 (“已撤銷監(jiān)控消息”, 0, “提示:成功”)
時鐘1.時鐘周期 = 0
返回 ()
.如果真結束
.如果真 (監(jiān)控消息.選中 = 假)
監(jiān)控消息.選中 = 真
.如果真 (Ms2000.選中 = 真)
time = 2000
時鐘1.時鐘周期 = time
信息框 (“已開啟監(jiān)控消息,” + “時鐘周期為” + 到文本 (time), 0, “提示:成功”)
返回 ()
.如果真結束
.如果真 (Ms3500.選中 = 真)
time = 3500
時鐘1.時鐘周期 = time
信息框 (“已開啟監(jiān)控消息,” + “時鐘周期為” + 到文本 (time), 0, “提示:成功”)
返回 ()
.如果真結束
.如果真 (Ms4900.選中 = 真)
time = 4900
時鐘1.時鐘周期 = time
信息框 (“已開啟監(jiān)控消息,” + “時鐘周期為” + 到文本 (time), 0, “提示:成功”)
返回 ()
.如果真結束
.如果真結束
.子程序 _Ms3500_被選擇
Ms3500.選中 = 真
Ms2000.選中 = 假
Ms4900.選中 = 假
時鐘1.時鐘周期 = 3500
.子程序 _監(jiān)控轉賬_被選擇
.局部變量 TIME, 整數型
.如果真 (監(jiān)控轉賬.選中 = 真)
監(jiān)控轉賬.選中 = 假
信息框 (“已撤銷監(jiān)控轉賬”, 0, “提示:成功”)
時鐘2.時鐘周期 = 0
返回 ()
.如果真結束
.如果真 (監(jiān)控轉賬.選中 = 假)
監(jiān)控轉賬.選中 = 真
.如果真 (Ms5000.選中 = 真)
TIME = 5000
時鐘2.時鐘周期 = TIME
信息框 (“已開啟監(jiān)控轉賬,” + “時鐘周期為” + 到文本 (TIME), 0, “提示:成功”)
返回 ()
.如果真結束
.如果真 (Ms6000.選中 = 真)
TIME = 6000
時鐘2.時鐘周期 = TIME
信息框 (“已開啟監(jiān)控轉賬,” + “時鐘周期為” + 到文本 (TIME), 0, “提示:成功”)
返回 ()
.如果真結束
.如果真 (Ms7000.選中 = 真)
TIME = 7000
時鐘2.時鐘周期 = TIME
信息框 (“已開啟監(jiān)控轉賬,” + “時鐘周期為” + 到文本 (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
運行結果:

總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。如果你想了解更多相關內容請查看下面相關鏈接

