比如在1024X768的屏幕下找一个固定的颜色值.
用什么方法最快?
我自己用了Picture来截取图片.然后在图片上找查颜色.但是CPU占用率太高了
时不时的就用到100%的CPU.有没有什么比较快方法?..困饶了很久了

解决方案 »

  1.   

    只能循环啦:
    Private Declare Function GetPixel Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long) As Long
    Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
    Private Sub Command1_Click()
    Dim i As Long, j As Long, dc As Long
    dc = GetDC(0)
    For i = 1 To 1024
    For j = 1 To 768
    If GetPixel(dc, i, j) = vbBlue Then Debug.Print i; j; GetPixel(dc, i, j)
    Next
    Next
    MsgBox "Ok"
    End Sub
      

  2.   

    用GETDC(0)获得窗体的HDC
    再用DIB获得整个屏幕的像素,
    最后再用2重循环来判断颜色.循环其实并不慢,上面的方法慢在GetPixel上,调用一个函数几万次想想也慢了.
    或者去我BLOG看看,相关文章: wallescai.tttcn.cn