TC官方合作论坛

标题: 【大漠后台文字识别】请大神们试试这个脚本能正常运行几次 [打印本页]

作者: sunfield    时间: 2012-2-24 11:03
标题: 【大漠后台文字识别】请大神们试试这个脚本能正常运行几次
不知是不是BUG,换了2台电脑测试以下代码,均使TC程序进入假死,还请大神测试,最好能有解决方法,谢谢!!

工具版本信息:
TC2.100
大漠3.1208C

程序思路:通过循环读取地图坐标判断人物处于行走状态还是静止状态。

以下脚本功能:在记事本中每隔X秒识别一次数字,并显示识别出的数字。

需要做的准备:在资源文件夹中新建“dm_soft.txt”字库文件,并复制下面几行代码(记事本输入字体为Fixedsys,大小为小五):
---------------------------字库代码------------------------------
7F1FF21A584FF8FE0$0$0.0.40$9
200401807FCFF8$1$0.0.22$9
619C721A464F88E10$2$0.0.28$9
631C7222444FF8EE0$3$0.0.31$9
061FC3E80103F87F0080$4$0.0.31$9
F89F122244C8F10C0$5$0.0.27$9
1F07F3C26849F81E0$6$0.0.32$9
8010723E5E0F01800$7$0.0.22$9
771FF262464FF8EE0$8$0.0.38$9
781F921643CFE0F80$9$0.0.32$9
---------------------------字库代码--------------------------------

然后我们打开记事本,随便输入几个数字,注意,因为用的大漠DX2图像模式,记事本窗口部分移出屏幕!

之后运行TC调试,看看能显示几次识别出的数字吧~~~


以下为TC脚本源码,大家记得在界面上拖进去两个标签控件,用于显示找到的数字~~~
-----------------------------------------------------------------------------------------
#import "dm.dmsoft" dm

空间 测试
功能 逻辑型 获取句柄()
//这里添加你要执行的代码
整型 句柄,绑定标志
整型 键值
    键值=键盘.等待按键()
        如果(键值==36)  //home
        句柄=dm.GetMousePointWindow()
                标签.设置文本("标签0",字符串.连接("句柄为:",转换.整型转字符型(句柄)))
                辅助.等待(500)
        绑定标志=dm.BindWindow(句柄,"dx2","windows","windows",0)
        如果(绑定标志==0)
            辅助.消息框("绑定失败,退出!")
            辅助.退出()
                否则
                    标签.设置文本("标签0","绑定成功!")  
                    辅助.等待(500)
        如果结束
        如果结束
返回 真
//函数返回语句
功能结束
功能 逻辑型 注册插件()
    逻辑型 是否成功=辅助.是否注册("dm.dmsoft")
        如果(是否成功)
            //辅助.消息框("插件已注册")
                        标签.设置文本("标签0","注册插件成功")
                否则
            辅助.注册插件("rc:dm.dll",真)  //rc:  使用资源中的文件
        如果结束
返回 真
功能结束

功能 逻辑型 开始_点击()
//这里添加你要执行的代码
字符型 路径
    测试.注册插件()
    路径=辅助.获取资源路径("rc:")
    dm.SetPath(路径)
        dm.SetDict(0,"dm_soft.txt")
        标签.设置文本("标签1","")
        辅助.等待(500)
    标签.设置文本("标签0","按下HOME获取鼠标所在窗口句柄!")  
    测试.获取句柄()
    辅助.等待(100)
        标签.设置文本("标签0","绑定成功,开始读坐标")  
        测试.读坐标()
返回 真
//函数返回语句
功能结束
功能 逻辑型 读坐标()
//这里添加你要执行的代码
字符型 坐标
标签.设置文本("标签0","开始找坐标!")  
     循环(真)
            坐标 = dm.Ocr(0,0,2000,2000,"0.0.0-0.0.0",1.0)
            辅助.等待 (1000)
            标签.设置文本("标签1",坐标)
            辅助.等待 (2000)
            标签.设置文本("标签1","开始找坐标!")  
    循环结束
返回 真
//函数返回语句   
功能结束           

功能 逻辑型 退出_点击()
//这里添加你要执行的代码
辅助.退出()
返回 真
//函数返回语句
功能结束
空间结束
//空间结束语句
-----------------------------------------------------------------------------------------


作者: 小风子    时间: 2012-2-24 12:31
死循环要用线程!不然界面会卡死!
建议楼主先看看视频先!
作者: sunfield    时间: 2012-2-24 12:50
谢谢楼上解答~
代码改为循环5次,效果一样哦.......
作者: 4661654    时间: 2012-3-13 18:57
循环5次不等于重复5次么




欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/) Powered by Discuz! X3.1