|
Die Farbe eines Bildschirmpunktes können Sie über die API-Funktion GetPixel ermitteln. Dazu benötigen Sie den so genannten Geräte-Kontext (DC, Device Context) und natürlich die Koordinaten des Bildschirmpunkts (in Pixels). Den Geräte-Kontext ermitteln Sie über die API-Funktion GetDC, der Sie wiederum das Handle (hWnd) eines Fensters übergeben müssen. Da Sie hier jedoch kein bestimmtes Fenster meinen, sondern den ganzen Bildschirm, können Sie als Fenster-Handle den Wert 0 übergeben - Windows weiß dann, dass der gesamte Bildschirm gemeint ist. Da sie den Geräte-Kontext jedoch von Windows gewissermaßen nur ausleihen, müssen Sie ihn nach Gebrauch wieder zurückgeben, genauer gesagt, wieder freigeben. Das erledigen Sie über die API-Funktion ReleaseDC. Der Bequemlichkeit halber verpacken Sie die ganze Aktion am besten in eine Hilfsfunktion, GetScreenPixelColor.
Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) _
As Long
Private Declare Function GetPixel Lib "gdi32" (ByVal hdc As Long, _
ByVal X As Long, ByVal Y As Long) As Long
Private Declare Function ReleaseDC Lib "user32" _
(ByVal hwnd As Long, ByVal hdc As Long) As Long
Public Function GetScreenPixelColor(ByVal X As Long, _
ByVal Y As Long) As Long
Dim nDC As Long
nDC = GetDC(0)
GetScreenPixelColor = GetPixel(nDC, X, Y)
ReleaseDC 0, nDC
End Function
|