Утилита, которую я написал на C ++ для тестирования, в настоящее время использует SendInput
функция для эмуляции пользовательского ввода, то есть событий мыши и клавиатуры. Теперь я хотел бы расширить свою программу так, чтобы она могла эмулировать сенсорные события, чтобы я мог проверить, что тестируемая программа обрабатывает, например, WM_TOUCH
сообщения правильно (хотя это сообщение устарела, Я все еще хотел бы проверить, что это обрабатывается правильно). Мне не нужно иметь возможность отправлять сенсорные события на определенный HWND
для этих целей достаточно просто отправить их по некоторым координатам X / Y на рабочем столе.
Я подумал об использовании HARDWAREINPUT
структуры с SendInput
а также отправка WM_TOUCH
(или же WM_GESTURE
?) сообщение, но в любом случае мне не ясно, как передать информацию о том, где и как было выполнено это событие касания.
WM_TOUCH
Документация объясняет, что lParam
аргумент:
Содержит дескриптор сенсорного ввода, который можно использовать при вызове GetTouchInputInfo для получения подробной информации о точках касания, связанных с этим сообщением.
…но неясно, смогу ли я сам выделить такую «ручку сенсорного ввода». Всегда ли это простой указатель в адресном пространстве текущего процесса? Если да, то какое значение я должен использовать для hSource
поле TOUCHINPUT
состав?
Вы, вероятно, ищете Сенсорный впрыск.
Других решений пока нет …