我正在尝试为 Windows 应用程序制作一个自动点击器。它运作良好,但速度非常慢!我目前正在使用“getPixel”方法,它每次调用时都会重新加载一个数组。
这是我当前的代码:
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);
}
}
}
所以基本上,它只是扫描屏幕中的一个像素范围,如果它检测到一个红色按钮,它就会启动一个鼠标事件。
我知道还有其他方法可以获取像素颜色,例如 bitblt。但是我已经进行了一些研究,但我不明白我应该怎么做才能扫描颜色阵列。我需要一些可以非常快速地扫描屏幕的东西才能抓住按钮。
请你帮助我好吗?
谢谢。