c++ - C++切换以按住鼠标左键吗?

标签 c++ click

我如何制作一个既可以按住鼠标左键又可以通过按键切换的小程序?我可以使它切换到鼠标左键以不断单击,但是我不知道如何按住它。

void Clicker2()
{
    while (1)
    {
        if (GetAsyncKeyState('U')) // U toggles on
        {
            click = true;
        }

        if (GetAsyncKeyState('I')) //I toggles off
        {
            click = false;
        }

        if (click == true)
        {
            mouse_event(MOUSEEVENTF_LEFTDOWN, x, y, 0, 0);
            mouse_event(MOUSEEVENTF_LEFTUP, x, y, 0, 0); 
        }
    }
}

最佳答案

当使用切换时,您要检查GeyAsyncKeyState()的返回值(特别是最低有效位),可以通过对结果进行按位与运算来实现。
我简化了您的代码,并将其转换为使用推荐的SendInput()。

int main()
{
    INPUT input{ 0 };
    input.type = INPUT_MOUSE;

    bool bClick = false;

    while (true)
    {
        //toggles it on and off
        if (GetAsyncKeyState('U') &1)
            bClick = !bClick;

        if (bClick)
        {
            input.mi.dwFlags = MOUSEEVENTF_LEFTDOWN;
            SendInput(1, &input, sizeof(INPUT));
        }
        else
        {
            input.mi.dwFlags = MOUSEEVENTF_LEFTUP;
            SendInput(1, &input, sizeof(INPUT));
        }
    }

    return 0;
}

关于c++ - C++切换以按住鼠标左键吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58152782/

相关文章:

c++ - 从有符号字符到整数的值初始化,过早提升?

c++ - 覆盖从 c struct 继承的函数

c++ - 更改此协议(protocol)以使用 TCP 流

c++ tcp 多线程客户端/服务器 - 如何与线程 sockethandler 通信?

javascript - 如何检查单选按钮是否被点击?

Selenium IDE 单击并拖动

c++ - Objective-C 合成属性中是否调用了 C++ 初始化器?

javascript - 模拟不同选择器的点击事件

jqGrid 单元格编辑 - 双击编辑?

c - 使用 XtAppMainLoop 时获取 X11 鼠标单击和位置? (改进xload)