itzyx 发表于 2020-12-7 12:21:51

afan 发表于 2020-12-6 23:52
你这个问题,用 PixelGetColor 只需5-6行代码就可以搞定

嗯嗯,PixelGetColor 这个函数 A大 指点过后,我正在研究怎么用到实际应用中,OCR相比较确实复杂了许多,不过可以作为以后扩展学习使用

afan 发表于 2020-12-7 12:35:52

itzyx 发表于 2020-12-7 12:21
嗯嗯,PixelGetColor 这个函数 A大 指点过后,我正在研究怎么用到实际应用中,OCR相比较确实复杂了许多, ...
给你举个简单的例子。本例仅采集屏幕左上角两个坐标点的颜色做比对,实际自行采样代入就行。执行后,若屏幕左上角发生变化则触发,比如移动了一个窗口在左上角
Local $iCor1 = PixelGetColor(0, 0), $iCor2 = PixelGetColor(1, 1)      ;坐标点色值
While 1
      Sleep(100)
      If PixelGetColor(0, 0) <> $iCor1 Or PixelGetColor(1, 1) <> $iCor2 Then Exit MsgBox(0, '', '已变化')
WEnd

itzyx 发表于 2020-12-7 13:50:46

afan 发表于 2020-12-7 12:35
给你举个简单的例子。本例仅采集屏幕左上角两个坐标点的颜色做比对,实际自行采样代入就行。执行后,若屏 ...

好的 谢谢A大,我先用你给的工具 找色,分析状态的区别, 再用例子来应用,这个如果能应用好,感觉对以后其他自动化 测试还是很有帮助的

afan 发表于 2020-12-7 15:11:10

itzyx 发表于 2020-12-7 13:50
好的 谢谢A大,我先用你给的工具 找色,分析状态的区别, 再用例子来应用,这个如果能应用好,感觉对以后 ...

工具获取的已是标准的十六进制RGB色值,PixelGetColor 获取的是十进制,可用 Hex(PixelGetColor(...) , 6) 统一

YGYL 发表于 2020-12-7 22:17:32

你把0.00fps周围的所有色点特征 抓下来 保存
然后程序随时 比对 当前画面的色点颜色
如果全部符合,自然就是实锤0.00fps了

itzyx 发表于 2020-12-7 23:09:20

YGYL 发表于 2020-12-7 22:17
你把0.00fps周围的所有色点特征 抓下来 保存
然后程序随时 比对 当前画面的色点颜色
如果全部符合,自然 ...

是的感谢建议

afan 发表于 2020-12-8 10:29:36

YGYL 发表于 2020-12-7 22:17
你把0.00fps周围的所有色点特征 抓下来 保存
然后程序随时 比对 当前画面的色点颜色
如果全部符合,自然 ...

不需要“周围所有点”,0.00fps 目测最多采集10个点(具唯一特征)就行了,具体要看会出现哪些字符来推测

afan 发表于 2020-12-8 11:02:22

本帖最后由 afan 于 2020-12-8 12:06 编辑

如果在测试中会匹配到其它字符,那就证明采的点唯一性特征不强,需要调整采点坐标
如果实在不会采点,如我3#所说,也可以用找图的方式,这个不需要多少判断,截个小图就行,不过码代码难度可能就大一点(不像 PixelGetColor 一个函数搞定),需要找一些截图和比对的udf学习下。这种可定点找图,效率也是极高的,检测这种小图在我老机器上也仅需2~3毫秒。


找10个色点的方式更快了,不到1毫秒


还可以用区域校验的方式去匹配,更快,0.3毫秒


这是使用工具进行的比对验证,还有很多技巧需要LZ自行研究,没有代码,没法建议。

itzyx 发表于 2020-12-8 20:01:51

afan 发表于 2020-12-8 11:02
如果在测试中会匹配到其它字符,那就证明采的点唯一性特征不强,需要调整采点坐标
如果实在不会采点,如我 ...

非常感谢A大细心指导, 客套的话我也不多说了,都在键盘里了

itzyx 发表于 2020-12-9 22:28:12

afan 发表于 2020-12-8 11:02
如果在测试中会匹配到其它字符,那就证明采的点唯一性特征不强,需要调整采点坐标
如果实在不会采点,如我 ...

A大 我发现 PixelGetColor 获取的是绝对坐标 , 不是窗口的相对坐标,因为窗口大小不是固定的,那如果窗口大小变化的话, 岂不是没辙了

afan 发表于 2020-12-9 22:34:17

itzyx 发表于 2020-12-9 22:28
A大 我发现 PixelGetColor 获取的是绝对坐标 , 不是窗口的相对坐标,因为窗口大小不是固定的,那如果窗 ...

你用我的工具 屏幕巡查 测试吗?区域选择就可以指定窗口,可以精确到具体控件或客户区,并且还可以继续细分限定范围。

itzyx 发表于 2020-12-9 22:37:32

afan 发表于 2020-12-9 22:34
你用我的工具 屏幕巡查 测试吗?区域选择就可以指定窗口,可以精确到具体控件或客户区,并且还可以继续细 ...

好的我再试试

afan 发表于 2020-12-10 00:08:04

itzyx 发表于 2020-12-9 22:37
好的我再试试

在工具上能成代码就能成

itzyx 发表于 2020-12-10 08:32:34

afan 发表于 2020-12-10 00:08
在工具上能成代码就能成

嗯嗯啊 昨晚太晚了 就没回复了,这个屏幕巡查 功能很强大啊,有的功能我还不会用,像我们脑子笨的,要多看几遍帮助

afan 发表于 2020-12-10 09:50:40

itzyx 发表于 2020-12-10 08:32
嗯嗯啊 昨晚太晚了 就没回复了,这个屏幕巡查 功能很强大啊,有的功能我还不会用,像我们脑子笨的,要多 ...

如果你有代码才能更好的帮到你,也就可以更快的解决问题。

原本屏幕巡查是准备分享更多包括直接生成代码功能的(就像我另一个窗口设计工具AuGUIDesigner一样),但后来看到下载量还行,但支持的却只有两位(应该还是友情支持),反馈的也只有floor6ggg一位,就没有继续浪费表情了。当然这是题外话了~
页: 1 2 [3] 4
查看完整版本: 已解决 如何读取状态栏显示的文本内容