我有一个无限的while循环,该循环不断检查是否按住了我的鼠标左键,无论如何,这一切都非常好,当我注释掉SendInput()函数(强制左键单击)时,它就可以工作了。但是我遇到的问题是我希望能够按住左键单击,并使其在一定间隔内强制单击,而不用GetAsyncKeyState将其标记为单击。当我按住鼠标时,它实际上只双击了一次,从理论上讲它只是在自动取消。
我正在制作一个自动点击器,我曾经尝试找到src,但是我还没有找到一个可以证明我正在尝试做我的尝试的人。
void autoclick(int cps) {
while (1) {
if (GetAsyncKeyState(VK_LBUTTON) & 0x8000) {
leftClick();
std::cout << "click";
Sleep(1000 / cps);
}
}
}
void leftClick(){
INPUT Input = { 0 };
// left down
Input.type = INPUT_MOUSE;
Input.mi.dwFlags = MOUSEEVENTF_LEFTDOWN;
::SendInput(1, &Input, sizeof(INPUT));
// left up
::ZeroMemory(&Input, sizeof(INPUT));
Input.type = INPUT_MOUSE;
Input.mi.dwFlags = MOUSEEVENTF_LEFTUP;
::SendInput(1, &Input, sizeof(INPUT));
}
我希望能够按住鼠标按钮,并使其在按住鼠标时模拟点击,而当我放开按钮时,它将停止单击。 (注意:这些函数正在使用多线程,因此while循环本身不会对程序流程造成任何问题)