La Web del Programador: Comunidad de Programadores
 
    Pregunta:  19538 - NEED 1 FUNC QUE ME DE EL COLOR DE CUALQUIER POSI DEL MONITOR
Autor:  Hugo Mat
Estoy programando en Visual Basic 5

Necesito una función que me devuelva el color que se esta presentando en ese momento en el monitor.

COLOR = DAMECOLOR(x,y)

Por ejemplo:
-la posición (1,1) es el borde de mi ventana, entonces me devuelve gris.
-la posición (20,790) es la parte roja del icono de microsoft en el menu de inicio, entonces me devuelve rojo.
- la posición (300,260) me devuelve azul porque es el grafico del escritorio de mi computadora con nueves y un cielo azul.

Muchas gracias...

  Respuesta:  Javier Perez
Incluye las siguientes declaraciones en un módulo:

Public Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
Public Declare Function ReleaseDC Lib "user32" (ByVal hwnd As Long, ByVal hdc As Long) As Long

Public Declare Function GetPixel Lib "gdi32" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long) As Long

La función que necesitas es la siguiente:

Public Function DameColor(ByVal X As Integer, ByVal Y As Integer) As Long

Dim hdc As Long
Dim color As Long

hdc = GetDC(0)
color = GetPixel(hdc, X, Y)
ReleaseDC 0, hdc

DameColor = color

End Function