这是一个很常见的问题,不同机器,由于系统的不同或者软件设置的差异,会导致文字颜色,字体等可能存在不同。

 

一般来说解决这个问题,以前的办法是这样,利用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,然后作者可以分析这个文件,来对自己的字库或者代码进行调节优化.

 

但这个办法有个延后性的问题,因为FindStrCapture是两个操作,分别调用了两次截屏,所以可能会有稍许不一致的情况存在.

 

为了完完全全的对FindStr时,产生的截图进行分析,我们需要用到2.1131版本提供的两个函数。

 

CapturePreEnableDisplayDebug.

 

那么代码如下

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这个函数是截取上一次的截图数据.