Я пытаюсь управлять приложением 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 мс) слишком велика для моего проекта. Есть ли способ уменьшить его? Мне нужно только управлять одним окном, поэтому обращение к операционной системе кажется чрезмерным, но я не смог найти никаких примеров прямого ввода мышью ввода в окно онлайн.