首页 > 解决方案 > 我目前正在制作一个 Autoclicker,到目前为止它已经取得了半成功。我需要帮助介绍切换键

问题描述

目前我正在尝试添加一个切换键并使其按住单击,这样当我切换它并按住左键单击时,它就会开始单击。目前它会启动,当我将 CPS 居中时它会单击,但它不会停止。它会不断地点击。

#include <iostream>
#include <windows.h>

using namespace std;


int x = 0, y = 0, cps;
bool click = false;

void Menu()
{
    cout << "Add CPS (click per second):" << endl;
    cin >> cps;
}
void Clicker()
{
    while (1)
    {
        if (GetAsyncKeyState(VK_LBUTTON)) 
        {
            click = true;
        }

        if (GetAsyncKeyState(VK_RBUTTON)) 
        {
            click = false;
        }

        if (click == true)
        {
            mouse_event(MOUSEEVENTF_LEFTDOWN, x, y, 0, 0);
            mouse_event(MOUSEEVENTF_LEFTUP, x, y, 0, 0);
            Sleep(1000 / cps);
        }
    }
}
int main()
{
    Menu();
    Clicker();
}

标签: c++winapi

解决方案


请检查以下代码以查看是否有帮助:

void Clicker()
{
    while (1)
    {
        if (GetAsyncKeyState(VK_LBUTTON) & 0x8000 && !click) //Capture that auto click start condition.
        {
            click = true;
        }
        else
        {
            click = false;
        }

        while (click)
        {
            if (GetAsyncKeyState(VK_RBUTTON) & 0x8000) //Capture the stop condition.
            {
                break;
            }
            mouse_event(MOUSEEVENTF_LEFTDOWN, x, y, 0, 0);
            mouse_event(MOUSEEVENTF_LEFTUP, x, y, 0, 0);
            Sleep(1000 / cps);
        }
    }
}

GetAsyncKeyState返回值:

如果设置了最高有效位,则密钥关闭。


推荐阅读