[General]
Description=读取小地图坐标
BeginHotkey=121
BeginHotkeyMod=0
PauseHotkey=0
PauseHotkeyMod=0
StopHotkey=123
StopHotkeyMod=0
RunOnce=1
EnableWindow=
Enable=0
AutoRun=0
[Repeat]
Type=0
Number=1
[Relative]
SetupOCXFile=
[Comment]
Content=
[Attachment]
UEsDBBQAAgAIAPwZrDj1/1B7dgAAAPYAAAALABEATWluaVRvcC5ibXBVVA0AB0K2J0hdtidIXbYnSH1OIQ6AMBAbignEBGLy5ATixEImEIRMnIBkkufyKjQ9ZkgINO2la3q5LdtpKkYoQC1kocb4Oz/MG2UiiTSzlxKqB8030NRyZpkCjK4k/9MvmbQcCU1djPrUf3X2Sees6x3yFCkNOKGTg04Q+S68ryySqqke+QVQSwECFwsUAAIACAD8Gaw49f9Qe3YAAAD2AAAACwAJAAAAAAAAACAAgIEAAAAATWluaVRvcC5ibXBVVAUAB0K2J0hQSwUGAAAAAAEAAQBCAAAAsAAAAAAA
[Script]
VBS dim mx,my,ocr,sps,i1
//声明需要用到的变量
set ocr=createobject("simplugocr.ocr")
//创建91ocr文字识别模块
ocr.dict="minipos.txt"
//设定字库为mimipos.txt
Delay 2000
//停留2秒钟,这2秒钟你可以把小地图显示出来以便脚本后面执行时能够看到
Gosub GetMiniPos
//执行函数 getminipos,这个函数的功能是取得小地图坐标,将x坐标放在mx,y坐标放在my
i1=10
//随便让一个变量i1等于一个随便的数字,演示后面数字和坐标之间的运算,这种数字间的运算可能会用在确定鼠标位置以便计算将要移动的位置和鼠标之间的距离,好让鼠标移动到需要的坐标上去
If cint(mx)>i1
//通过标准vbs函数cint将mx转换为数字,然后和i1进行比较,如果比i1大,就做下面的事情
mx=cint(mx)-i1
//让mx的值等于当前x坐标-i1的值
MessageBox mx&","&my
//显示运算后的mx和my
EndIf
//下面是读取小地图上鼠标所指位置的显示坐标
Sub GetMiniPos
Rem a1
//做一个标记a1
VBSCall FindPic(80,80,680,480,"attachment:\minitop.bmp",0.9,x,y)
//寻找小地图的左上角,将左上角的坐标存储在x,y变量中
If y>0
//如果找到了小地图的左上角,就可以执行识别程序了
ocr.fontcolor="F8FC00"
//设定最开始的时候建立的91ocr文字识别模块的字体颜色属性为"F8FC00",这个字体颜色就是小地图上鼠标所指位置的坐标显示出来的黄色字体
sps=ocr.ocr(x,y,680,420)
//识别从小地图左上角到屏幕680,420之间的文字,将识别到的文字存放在变量sps里面,文字颜色刚才已经设定了是"F8FC00"这样的黄色字体,因为是纯色文字,所以颜色偏差不需要设定,也就是偏差为0
i=instr(sps,",")
//从sps变量里面找到逗号,的位置,之所以确定只有x和y坐标,是因为通过识别小地图左上角,已经限制了小地图中只有坐标颜色为f8fc00,所以后面可以放心切割,在以后的编程过程中如果识别到的结果有空格,就需要用标准vbs函数replace来去掉空格,就可以正确取得需要的数据了
mx=left(sps,i-1)
//通过标准vbs函数left,将逗号坐标的文字,也就是x坐标存放到变量mx里面,这样x坐标就读出来了
my=right(sps,len(sps)-i)
//通过标准vbs函数right,将逗号右边的文字,也就是y坐标存放在变量my里面,这样y坐标也读出来了
Else
Goto a1
//如果没有找到小地图的左上角,继续寻找小地图的左上角
EndIf
Return
文字识别(OCR)COM接口组件
4星 · 超过85%的资源 需积分: 48 54 浏览量
2009-08-27
10:57:26
上传
评论 2
收藏 2.39MB ZIP 举报
eseefeng
- 粉丝: 2
- 资源: 5
- 1
- 2
- 3
- 4
- 5
- 6
前往页