简介:本文详细介绍如何在按键精灵脚本中调用百度文字识别OCR服务,包括环境准备、API调用流程、代码实现及优化建议,帮助开发者实现高效自动化文本识别。
在自动化办公场景中,按键精灵凭借其低代码、易上手的特性,成为模拟鼠标键盘操作的热门工具。然而,当涉及图片或屏幕截图中的文字提取时,传统按键脚本往往需要依赖OCR(光学字符识别)技术实现文本解析。百度文字识别OCR服务作为国内领先的AI文字识别平台,提供高精度、多语种的文字识别能力,支持通用场景、手写体、表格等复杂文本的精准提取。通过将百度OCR与按键精灵结合,开发者可构建“截图+识别+自动化处理”的全流程解决方案,显著提升数据录入、信息抓取等任务的效率。
WinHttp或LibCurl),用于发起RESTful API调用。aip.baidubce.com),避免因防火墙限制导致请求失败。百度OCR通用文字识别API的请求路径为:
POST https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic?access_token=YOUR_ACCESS_TOKEN
核心参数包括:
Token需通过以下步骤获取:
Function GetAccessToken(apiKey, secretKey)Dim url, http, responseurl = "https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=" & apiKey & "&client_secret=" & secretKeySet http = CreateObject("MSXML2.XMLHTTP")http.Open "GET", url, Falsehttp.Sendresponse = http.responseText' 解析JSON获取access_token(需引入JSON解析库或手动提取)GetAccessToken = ExtractToken(response) ' 自定义函数解析tokenEnd Function
按键精灵需先截取屏幕区域,再将图片转为Base64:
Function ScreenshotToBase64()Dim path, cmd, base64' 1. 截取屏幕并保存为临时文件Plugin.Window.Capture "截图.png", 0, 0, 100, 100 ' 示例坐标path = "C:\temp\截图.png"' 2. 使用系统命令或插件转换为Base64(需额外工具或VBS脚本)' 示例:调用PowerShell转换(需提前配置环境)cmd = "powershell -command ""[Convert]::ToBase64String((Get-Content -Path '" & path & "' -Encoding Byte))"""base64 = CreateObject("WScript.Shell").Exec(cmd).StdOut.ReadAllScreenshotToBase64 = base64End Function
优化建议:若按键精灵无法直接调用系统命令,可预先编写外部程序(如Python脚本)处理图片,再通过按键精灵调用该程序输出结果。
Dim apiKey, secretKey, accessTokenapiKey = "YOUR_API_KEY"secretKey = "YOUR_SECRET_KEY"' 步骤1:获取Access TokenaccessToken = GetAccessToken(apiKey, secretKey)If accessToken = "" ThenMsgBox "获取Token失败!"Exit ScriptEnd If' 步骤2:截图并转为Base64Dim imageBase64imageBase64 = ScreenshotToBase64()If imageBase64 = "" ThenMsgBox "图片处理失败!"Exit ScriptEnd If' 步骤3:调用百度OCR APIDim ocrUrl, http, responseocrUrl = "https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic?access_token=" & accessTokenSet http = CreateObject("MSXML2.XMLHTTP")http.Open "POST", ocrUrl, Falsehttp.SetRequestHeader "Content-Type", "application/x-www-form-urlencoded"http.Send "image=" & imageBase64response = http.responseText' 解析JSON响应(示例为简化版,实际需完整解析)Dim resultresult = ParseJson(response) ' 自定义JSON解析函数If InStr(result, "words_result") > 0 ThenDim words, iwords = ExtractField(result, "words_result") ' 提取识别结果数组For i = 0 To UBound(words)TracePrint words(i).words ' 输出识别文本NextElseMsgBox "识别失败:" & resultEnd If
百度OCR免费版QPS限制为5次/秒,超出后返回429错误。解决方案:
Delay命令控制请求间隔。language_type(如CHN_ENG中英文混合)。http.setTimeouts 5000, 5000, 5000, 5000)。通过按键精灵调用百度OCR服务,开发者可低成本实现高效的文本自动化处理。实际开发中需重点关注:
未来,随着AI技术的演进,OCR与RPA(机器人流程自动化)的结合将更加紧密,按键精灵开发者可通过此类集成,开拓更多自动化场景的应用可能性。