只能循环啦: 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
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
再用DIB获得整个屏幕的像素,
最后再用2重循环来判断颜色.循环其实并不慢,上面的方法慢在GetPixel上,调用一个函数几万次想想也慢了.
或者去我BLOG看看,相关文章: wallescai.tttcn.cn