易语言吧

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2634|回复: 1

[技术文章] 易语言大漠插件本机识别文字正常,换别的机器就不正常

[复制链接]

529

主题

832

帖子

4万

积分

易语言吧管理员

Rank: 9Rank: 9Rank: 9

积分
40112

幽默大师终生成就

威望
0
易币
38880
贡献
0
积分
40112
UID
1
在线时间
1464 小时
注册时间
2019-7-19
发表于 2019-12-7 20:50:47 | 显示全部楼层 |阅读模式
这是一个很常见的问题,不同机器,由于系统的不同或者软件设置的差异,会导致文字颜色,字体等可能存在不同。
一般来说解决这个问题,以前的办法是这样,利用Capture函数,比如
dm_ret = dm.FindStr(0,0,2000,2000,"长安","ffffff-000000",1.0,x,y)
if x < 0 then
    dm_ret = dm.Capture(0,0,2000,2000,"screen.bmp")
end if
这样当找不到长安时,就会截图保存为screen.bmp,然后作者可以分析这个文件,来对自己的字库或者代码进行调节优化.
但这个办法有个延后性的问题,因为FindStr和Capture是两个操作,分别调用了两次截屏,所以可能会有稍许不一致的情况存在.
为了完完全全的对FindStr时,产生的截图进行分析,我们需要用到2.1131版本提供的两个函数。
CapturePre和EnableDisplayDebug.
那么代码如下
dm.EnableDisplayDebug 1
dm_ret = dm.FindStr(0,0,2000,2000,"
长安","ffffff-000000",1.0,x,y)
if x < 0 then
    dm_ret = dm.CapturePre("screen.bmp")
end if

这样就把FindStr时的截图保存下来了,就完全恢复了现场. 因为CapturePre这个函数是截取上一次的截图数据.


0

主题

2368

帖子

9586

积分

VIP超级贵宾

Rank: 8Rank: 8

积分
9586
威望
198
易币
6819
贡献
0
积分
9586
UID
11903
在线时间
36 小时
注册时间
2021-1-23
发表于 2021-5-28 20:30:39 | 显示全部楼层
楼主发贴辛苦了,谢谢楼主分享!我觉得易语言吧是注册对了!
回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【选择右侧内容,快速回复】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

大漠插件注册码无须等1-3号

QQ|一:站内所有资源均来自互联网收集或用户上传分享,本站不拥有此类资源的版权。 作为网络服务提供者,对转载行为的发生不具备充分的监控能力。但是当版权拥有者提出侵权并出示充分的版权证明材料时,易语言吧负有移除转载作品以及停止继续传播的义务。在满足前款条件下采取移除等相应措施后不为此向原发布人承担违约责任,包括不承担因侵权不成立而给原发布人带来损害的赔偿责任。 用户免费分享产生,如果侵犯了你的权益,联系QQ:3066137757|Archiver|手机版|小黑屋|易语言吧

GMT+8, 2024-5-3 15:03 , Processed in 0.198236 second(s), 25 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表