Obtener Pixel color de manera más rápida?

Estoy tratando de hacer un auto-cliker para una aplicación de Windows. Funciona bien, pero es increíblemente lento! Actualmente estoy usando el método "getPixel" que recarga una matriz cada vez que se llama.

Aquí está mi código actual:

<code>hdc = GetDC(HWND_DESKTOP);
bx = GetSystemMetrics(SM_CXSCREEN);
by = GetSystemMetrics(SM_CYSCREEN);
start_bx = (bx/2) - (MAX_WIDTH/2);
start_by = (by/2) - (MAX_HEIGHT/2);
end_bx = (bx/2) + (MAX_WIDTH/2);
end_by = (by/2) + (MAX_HEIGHT/2);

for(y=start_by; y<end_by; y+=10)
{   
    for(x=start_bx; x<end_bx; x+=10)
    {
        pixel = GetPixel(*hdc, x, y);
        if(pixel==RGB(255, 0, 0))
        {
            SetCursorPos(x,y);
            mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
            Sleep(50);
            mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
            Sleep(25);
        }
    }
}
</code>

Básicamente, solo escanea un rango de píxeles en la pantalla e inicia un evento del mouse si detecta un botón rojo.

Sé que hay otras formas de obtener el color del píxel, como bitblt. Pero he hecho algunas investigaciones y no entiendo cómo se supone que debo hacer para escanear una matriz de colores. Necesito algo que escanee la pantalla muy rápido para atrapar el botón.

¿Me podría ayudar?

Gracias.

Respuestas a la pregunta(2)

Su respuesta a la pregunta