Отличайте щелчки от mouse_event аппаратными щелчками - PullRequest
0 голосов
/ 03 сентября 2018

Моя цель - создать программу, которая автоматически щелкает при нажатии кнопки мыши.

На данный момент у меня есть это.

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);

Но когда я использую это, он просто запускает цикл, потому что программа будет продолжать обнаруживать щелчки и продолжать посылать больше входных данных. Как я могу решить эту проблему?

1 Ответ

0 голосов
/ 04 сентября 2018

Чтобы определить, нажата ли кнопка или клавиша, вы можете использовать это:

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);
    }
}

Это может потребовать некоторой оптимизации и исправления, но вы можете разобраться в своем коде.

...