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.