Uzyskaj najszybszy kolor Pixel?

Próbuję utworzyć auto-clikera dla aplikacji Windows. Działa dobrze, ale jest niesamowicie powolny! Obecnie używam metody „getPixel”, która ładuje tablicę za każdym razem, gdy zostanie wywołana.

Oto mój obecny kod:

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

W zasadzie po prostu skanuje zakres pikseli na ekranie i uruchamia zdarzenie myszy, jeśli wykryje czerwony przycisk.

Wiem, że istnieją inne sposoby na uzyskanie koloru piksela, takiego jak bitblt. Ale zrobiłem kilka badań i nie rozumiem, jak mam to zrobić, aby skanować tablicę kolorów. Potrzebuję czegoś, co bardzo szybko skanuje ekran, aby złapać przycisk.

Czy mógłbyś mi pomóc?

Dzięki.

questionAnswers(2)

yourAnswerToTheQuestion