通过硬件点击来区分mouse_event的点击次数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通过硬件点击来区分mouse_event的点击次数相关的知识,希望对你有一定的参考价值。

我的目标是制作一个程序,在按下用户鼠标按钮时自动点击。

这一刻,我有这个。

while (true)
        {
            Sleep(1);
            if (GetAsyncKeyState(VK_LBUTTON))  

                 {


                    mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
                    mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);




                }
                Sleep(delayy);

但是当我使用它时它只是启动循环,因为程序将继续检测点击并继续发送更多输入。我该如何解决这个问题?

答案

要确定是否按下按钮或按键,您可以使用:

if((GetKeyState(VK_LBUTTON) & 0x100) != 0)

对于您正在查找的代码,您可以尝试以下操作:

#include <iostream>
#include <Windows.h>

int main()
{
    while (1)
    {

        if (GetAsyncKeyState(VK_LBUTTON)) {

                keybd_event(VK_LBUTTON, 0x45, KEYEVENTF_KEYUP, 0);
                while (!GetAsyncKeyState(VK_LBUTTON))
                {
                    keybd_event(VK_LBUTTON, 0x45, 0, 0);
                    std::cout << "Click" << std::endl;
                }
        }

        Sleep(100);
    }
}

这可能需要一些优化和修复,但您可以在代码中对其进行排序。

以上是关于通过硬件点击来区分mouse_event的点击次数的主要内容,如果未能解决你的问题,请参考以下文章

如何模拟后台鼠标点击功能? SendMessage 和PostMessage 都无效。

数据分析——埋点

通过 AdWords API 获取广告系列统计信息(例如点击次数、点击率、每次点击费用等)

检测用户点击按钮的次数

FineReport实现根据点击次数奇偶性排序的方法

VC++/MFC中用PostMessage发送鼠标点击事件