Нужна помощь в создании цикла, который спит условие, когда условие выполняется, он останавливается до следующего действия - PullRequest
0 голосов
/ 23 апреля 2019

Я очень новичок в C ++, и я пытаюсь симулировать щелчки мыши в программе, использующей C ++.

Я пытаюсь достичь следующего:

Пока нажата правая кнопка мыши:

Пользователь щелкает правой кнопкой мыши (первое действие)

Приложение спит в течение нескольких миллисекунд (второе действие)

Оно перестает спать и переходит в другое состояние (третье действие)

Оно остается в этом состоянии, пока пользователь оставляет мышьщелчок (четвертое действие)

(повторите, пока пользователь снова щелкает правой кнопкой мыши)

Я пробовал некоторые альтернативы, но ни одна из них, кажется, не работает, как я ожидаю.Прямо сейчас я попробовал следующее:

bool sleep = false;

while (sleep = false) {
    if (MK_RBUTTON) {
        Sleep(100);
        sleep = true;
    }
}
if (sleep = true) {
    (third action);
}

1 Ответ

0 голосов
/ 24 апреля 2019

Как сказал @ Реми Лебо, GetAsyncKeyState () - хороший выбор.

Я попытался изменить ваш код следующим образом

#include <Windows.h>
#include <iostream>
using namespace std;

void third_action();
int main()
{
    BOOL sleep = FALSE;
    while (sleep == FALSE)
    {
        if (GetAsyncKeyState(VK_RBUTTON) < 0)
        {
            //Click RightButton
            Sleep(600);
            sleep = TRUE;
            cout << "Click RightButton" << endl;
        }
        if (sleep == TRUE)
        {
            //third action
            third_action();
            sleep = FALSE;
        }
    }
    return 0;
}

void third_action()
{
    /*
    Execute your third action here. 
    */
    cout << "third action worked" << endl;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...