Есть ли способ эмулировать нажатия клавиш на Windows с низкой задержкой? - PullRequest
1 голос
/ 16 февраля 2020

Я пытаюсь управлять приложением windows через c ++. Это мой код для щелчков мышью:

// info is a WINDOWINFO struct retrieved with GetWindowInfo()

void click(int x, int y) {
    // move mouse to given position plus the position of the top left corner of the window
    SetCursorPos(info.rcWindow.left + x, info.rcWindow.top + y)

    INPUT    Input = { 0 };
    // left mouse button down 
    Input.type = INPUT_MOUSE;
    Input.mi.dwFlags = MOUSEEVENTF_LEFTDOWN;
    ::SendInput(1, &Input, sizeof(INPUT));

    // left mouse button up
    ::ZeroMemory(&Input, sizeof(INPUT));
    Input.type = INPUT_MOUSE;
    Input.mi.dwFlags = MOUSEEVENTF_LEFTUP;
    ::SendInput(1, &Input, sizeof(INPUT));
}

Это работает, но задержка (~ 120 мс) слишком велика для моего проекта. Есть ли способ уменьшить его? Мне нужно только управлять одним окном, поэтому обращение к операционной системе кажется чрезмерным, но я не смог найти никаких примеров прямого ввода мышью ввода в окно онлайн.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...