关于c++键鼠函数的问题

按住鼠标左键后,没反应,和正常左键功能一样




#include <Windows.h>
#include 

int main()
{
    // 获取当前光标位置
    POINT p;
    GetCursorPos(&p);

    // 模拟按下鼠标左键
    INPUT input;
    input.type = INPUT_MOUSE;
    input.mi.dx = p.x;
    input.mi.dy = p.y;
    input.mi.mouseData = 0;
    input.mi.dwFlags = MOUSEEVENTF_LEFTDOWN;
    input.mi.time = 0;
    SendInput(1, &input, sizeof(INPUT));

    // 随机延迟并连续点击鼠标左键
    while (GetAsyncKeyState(VK_LBUTTON) & 0x8000)
    {
        // 随机延迟
        int delay = rand() % 50 + 1;
        Sleep(delay);

        // 模拟点击鼠标左键
        input.mi.dwFlags = MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP;
        SendInput(1, &input, sizeof(INPUT));
    }

    // 模拟抬起鼠标左键
    input.mi.dwFlags = MOUSEEVENTF_LEFTUP;
    SendInput(1, &input, sizeof(INPUT));

    return 0;
}

这段代码中,使用GetCursorPos函数获取当前光标位置,然后使用SendInput函数模拟按下鼠标左键,在一个while循环中,不断地模拟点击鼠标左键。

参考GPT和自己的思路:

这段代码实现了一直按住鼠标左键的功能。当按下鼠标左键后,通过while循环和SendInput函数来模拟不断地点击鼠标左键,直到释放鼠标左键为止。代码中的变量delay表示随机延迟的时间,以避免过于机械化的模拟操作。需要注意的是,该代码是在Windows操作系统下编写的,使用了Windows API中的函数。如果要在其他操作系统或环境中使用,需要进行相应的改动。

这是 GPT 产生的垃圾代码?看着很厉害,实际一用嘿嘿了

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^