(Как) Можно ли эмулировать сенсорные события в Windows?

Утилита, которую я написал на C++ для тестирования, в настоящее время использует SendInput функция для эмуляции пользовательского ввода, то есть событий мыши и клавиатуры. Теперь я хотел бы расширить свою программу так, чтобы она могла эмулировать сенсорные события, чтобы я мог проверить, что тестируемая программа обрабатывает, например, WM_TOUCHсообщения правильно (хотя это сообщение устарело, я все же хотел бы убедиться, что оно обрабатывается правильно). Мне не нужно иметь возможность отправлять сенсорные события на определенный HWND для этих целей достаточно просто отправить их по некоторым координатам X/Y на рабочем столе.

Я подумал об использовании HARDWAREINPUT структуры с SendInput а также отправка WM_TOUCH (или же WM_GESTURE?) сообщение, но в любом случае мне не ясно, как передать информацию о том, где и как было выполнено это событие касания.

WM_TOUCH Документация объясняет, что lParam аргумент:

Содержит дескриптор сенсорного ввода, который можно использовать при вызове GetTouchInputInfo для получения подробной информации о точках касания, связанных с этим сообщением.

... но неясно, смогу ли я сам выделить такую ​​"ручку сенсорного ввода". Всегда ли это простой указатель в адресном пространстве текущего процесса? Если да, то какое значение я должен использовать для hSource поле TOUCHINPUT состав?

1 ответ

Решение

Вы, вероятно, ищете Touch Touch.

Другие вопросы по тегам