Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 通过硬件点击区分点击和鼠标事件_C++_Windows_Click - Fatal编程技术网

C++ 通过硬件点击区分点击和鼠标事件

C++ 通过硬件点击区分点击和鼠标事件,c++,windows,click,C++,Windows,Click,我的目标是制作一个程序,当用户按下鼠标按钮时自动点击 此刻,我有了这个 while (true) { Sleep(1); if (GetAsyncKeyState(VK_LBUTTON)) { mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0); 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);
    }
}
#包括
#包括
int main()
{
而(1)
{
if(GetAsyncKeyState(VK_LBUTTON)){
keybd_事件(VK_LBUTTON,0x45,KEYEVENTF_KEYUP,0);
而(!GetAsyncKeyState(VK_LBUTTON))
{
keybd_事件(VK_按钮,0x45,0,0);

std::你想要一个“自动点击”的程序吗?你的程序应该解决的真正问题是什么?至于你的问题,一个简单的标志告诉你的程序调用
GetAsyncKeyState(VK_LBUTTON)怎么样
还是不?@一些程序员伙计,我想要一种当用户按住鼠标左键时可以连续发送点击的东西。这是用于游戏的。除非你想自己发送点击,否则你真正想要的可能是将点击发送到某个特定窗口?我认为这不起作用,因为它需要非常低的延迟。有人对我说了一些关于鼠标挂钩的事情,但我无法理解文档。这并没有回答所问的问题。@I不可检测,正如前面提到的,它确实提供了一些关于他可能试图实现OP所问的目标的见解。此建议答案包含的唯一潜在见解是使用。但您不能使用此API打电话到这里。阅读文档了解原因。这个答案没有提供如何区分真实输入和注入输入的信息。这就是问题的目的。