Obter Pixel cor maneira mais rápida?

Eu estou tentando fazer um auto-cliker para um aplicativo do windows. Funciona bem, mas é incrivelmente lento! Atualmente estou usando o método "getPixel" que recarrega um array toda vez que é chamado.

Aqui está meu código atual:

<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>

Então, basicamente, ele apenas verifica um intervalo de pixels na tela e inicia um evento de mouse se detectar um botão vermelho.

Eu sei que existem outras maneiras de obter a cor do pixel, como bitblt. Mas eu fiz algumas pesquisas, e não entendo como devo fazer, a fim de escanear uma matriz de cores. Eu preciso de algo que escaneie a tela muito rápido para pegar o botão.

Podes ajudar-me, por favor?

Obrigado.

questionAnswers(2)

yourAnswerToTheQuestion