我正在尝试为Windows应用程序制作自动点击器。它可以正常工作,但是速度非常慢!我目前使用的方法是“getPixel”,每次调用它都会重新加载一个数组。
以下是我目前的代码:
基本上,它只是在屏幕上扫描一系列像素,并在检测到红色按钮时开始鼠标事件。
我知道还有其他获取像素颜色的方法,例如bitblt。但我做了一些研究,不明白应该如何扫描颜色数组。我需要一些能够快速扫描屏幕以捕捉按钮的东西。
请问你能帮助我吗?
谢谢。
以下是我目前的代码:
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。但我做了一些研究,不明白应该如何扫描颜色数组。我需要一些能够快速扫描屏幕以捕捉按钮的东西。
请问你能帮助我吗?
谢谢。
GetPixel
。而是因为你的应用程序没有留出 CPU 时间给其他应用程序。 - tenfour