SKY外语计算机学习

标题: VB 检测屏幕坐标内颜色 [打印本页]

作者: 帅哥    时间: 2012-7-30 13:50
标题: VB 检测屏幕坐标内颜色
本帖最后由 sky_yx 于 2015-12-30 14:19 编辑

指定一种颜色 如 rgb 255 0 0
如何检测屏幕内坐标x200 y300 - x800 y600 这个区域里面是否有指定的颜色


作者: 帅哥    时间: 2012-7-30 14:16
本帖最后由 sky_yx 于 2015-12-30 14:19 编辑

各位大神 求解啊?


作者: 帅哥    时间: 2012-8-1 11:10
本帖最后由 sky_yx 于 2015-12-30 14:19 编辑

大神们???


作者: 帅哥    时间: 2012-8-1 14:01
本帖最后由 sky_yx 于 2015-12-30 14:19 编辑

等待大神来解答,继续关注。


作者: Kill    时间: 2012-8-1 18:19
调用GetPixel,得到颜色,和所需要的比较,一个区域就循环做就行了
作者: SKY定格    时间: 2012-8-3 21:31
本帖最后由 sky_yx 于 2015-12-30 14:19 编辑
帅哥 发表于 2012-8-1 14:01
等待大神来解答,继续关注。

手机上的论坛﹫我记得我发了一个炫舞外挂里面用到了你说的效果﹫其实也就是用API循环查询你的那个区域或者用API查找你要找的那个颜色出现位置的坐标然后判断是不是在你的区域里不是排除再判断﹫具体API查API学习手册吧搜一下就好了﹫KILL说的方法可用但是那个API速度偏慢区域要是不大查询不频繁也无所谓的


作者: 帅哥    时间: 2012-8-8 11:01
本帖最后由 sky_yx 于 2015-12-30 14:20 编辑

GetPixel 是否太慢了


作者: SKY定格    时间: 2012-8-16 11:42
本帖最后由 sky_yx 于 2015-12-30 14:20 编辑

你试下好了能用就好不能满足你的速度要求就换个


作者: SKY闫喔喔    时间: 2013-6-23 14:26
本帖最后由 sky_yx 于 2015-12-30 14:20 编辑

楼主问题是否得到解决呢?


作者: 小井    时间: 2013-10-4 11:42
本帖最后由 sky_yx 于 2015-12-30 14:20 编辑

区域找图代码类:摘自 神罗模块QQ447186060[转载请注明]
Function 找色_区域找色(左上角x As Integer, 左上角y As Integer, 右下角x As Integer, 右下角y As Integer, 十进制原色 As Long) As String      '成功返回坐标(111,111)或失败反回空字符串
    Dim a As Long, b As Long, X1%, Y1%
    找色_区域找色 = ""
    For Y1 = 左上角y To 右下角y
        For X1 = 左上角x To 右下角x
            a = GetDC(0)
            b = GetPixel(a, X1, Y1) '坐标
            If b = 十进制原色 Then '14215660 Then '十进制原色(把16进制转换成10进制)
                找色_区域找色 = X1 & "," & Y1
                Exit Function
            End If
            Call ReleaseDC(0, a) '释放
        Next
    Next
End Function


作者: 小井    时间: 2013-10-4 11:47
当然,如果找色的区域比较大的话,可以在函数中加入doevents 来避免窗口假死
作者: Kill    时间: 2013-10-4 15:50
小井,不错!




欢迎光临 SKY外语计算机学习 (http://skywj.com/) Powered by Discuz! X2.5