简介:本文详解如何通过按键精灵调用百度文字识别OCR服务,实现屏幕文字自动化提取。涵盖API接入、参数配置、错误处理及代码优化,助力开发者高效构建自动化流程。
在自动化办公、游戏脚本开发及数据采集场景中,文字识别(OCR)技术已成为提升效率的关键工具。按键精灵作为一款轻量级自动化工具,通过集成百度文字识别OCR服务,可实现屏幕截图文字的精准提取,解决传统OCR工具需手动截图、识别率低等痛点。
Capture命令自动截取指定区域API Key和Secret KeyWinHttp或cURL插件(用于HTTP请求)
' 按键精灵VBS脚本示例Dim apiKey, secretKey, accessTokenapiKey = "您的API_KEY"secretKey = "您的SECRET_KEY"' 获取Access Token(需百度OCR SDK配合)Function GetAccessToken()Dim url, responseurl = "https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=" & apiKey & "&client_secret=" & secretKeyresponse = Plugin.Web.HttpGet(url)Dim jsonObjSet jsonObj = Json.Parse(response)GetAccessToken = jsonObj("access_token")End Function' 调用OCR接口Function RecognizeText(imagePath)Dim token, url, imageData, responsetoken = GetAccessToken()url = "https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic?access_token=" & token' 读取图片为Base64(需按键精灵插件支持)imageData = Plugin.File.ReadFileBase64(imagePath)' 构造POST请求体Dim postDatapostData = "image=" & UrlEncode(imageData)' 发送HTTP请求response = Plugin.Web.HttpPost(url, postData)RecognizeText = responseEnd Function' 主程序Dim screenshotPath, resultscreenshotPath = "C:\temp\screenshot.png"' 截图命令(需按键精灵截图插件)Call Plugin.Sys.GetScreenShot(screenshotPath)result = RecognizeText(screenshotPath)TracePrint "识别结果:" & result
| 参数 | 说明 | 示例值 |
|---|---|---|
image |
图片Base64编码 | iVBORw0KGgoAAAANSUhEUg... |
recognize_granularity |
识别粒度 | big(整图)/small(单词) |
language_type |
语言类型 | CHN_ENG(中英文) |
paragraph |
是否返回段落 | true |
网络异常处理:
On Error Resume Nextresponse = Plugin.Web.HttpPost(url, postData)If Err.Number <> 0 ThenTracePrint "HTTP请求失败:" & Err.DescriptionExit FunctionEnd IfOn Error GoTo 0
OCR服务限流处理:
Delay 200(毫秒)控制调用频率Function GetCachedToken()
Dim now
now = Timer()
If tokenCache = “” Or now > tokenExpire Then
tokenCache = GetAccessToken()
tokenExpire = now + 3500 ‘ 提前500秒刷新(Token有效期3600秒)
End If
GetCachedToken = tokenCache
End Function
2. **异步调用设计**:- 使用`Plugin.Msg.CreateThread`创建子线程处理OCR请求- 避免主线程阻塞### 3.2 场景化解决方案#### 3.2.1 游戏文字识别```vbs' 游戏窗口截图(需获取窗口句柄)Dim gameHwndgameHwnd = Plugin.Window.Find("游戏窗口标题")Call Plugin.Window.GetClientRect(gameHwnd)Call Plugin.Sys.GetScreenShot("C:\temp\game_text.png", left, top, right, bottom)
table_recognition接口?recognize_granularity=table&accuracy=normal数据隐私保护:
服务用量监控:
密钥管理:
API Key硬编码在脚本中Q1:调用返回”403 Forbidden”错误?
Access Token是否过期Q2:识别中文乱码?
Accept-Charset: utf-8Q3:如何提高识别速度?
fast模式(准确率略降但速度提升30%)自动化测试:
数据采集:
XPath实现精准定位无障碍辅助:
通过按键精灵调用百度文字识别OCR服务,开发者可快速构建高效率的自动化流程。未来可探索:
建议开发者持续关注百度OCR的版本更新,合理规划调用量以控制成本。对于企业级应用,可考虑购买预付费资源包降低单位调用成本。