Создание сообщения WM_TOUCH для PostMessage() в C# / .NET

(Для справки см. Составление сообщения WM_TOUCH для SendMessage(), Kinect как устройство мультитач, которое задает в основном тот же вопрос, что и мой, но чей принятый ответ на самом деле не отвечает на вопрос. Сложный бит не заполняется TOUCHINPUT структуры, но сделать правильный дескриптор сенсорного ввода

Я хотел бы смоделировать наличие мультитач-устройства ввода противным хакерским способом, который в общих чертах выглядит так:

while (true) {
  choose locations etc. for simulated touches;
  PostMessage(GetForegroundWindow(), WM_TOUCH, nTouches, ...);
}

Хитрый момент - то, что идет в том месте, помеченном "...". Документация MSDN, которая неудивительно написана с точки зрения потребителя WM_TOUCH сообщения, говорит, что lParam для WM_TOUCH сообщение

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

Я могу достаточно легко сделать, например, массив TOUCHINPUT структуры, что к чему GetTouchInputInfo дает тебе. Но это, похоже, совсем не то, что "ручка сенсорного ввода". (Например, ручка для сенсорного ввода должна быть правильной вещью для передачи CloseTouchInputHandle который якобы PostMessage или же SendMessage Сделаю.)

Возможно ли (официально или неофициально!) Для пользовательского кода создать действительный дескриптор сенсорного ввода, который он может передать PostMessage ? Если так, то как?

1 ответ

В Windows 8 есть API TouchInjection для имитации прикосновений в среде рабочего стола.

http://social.technet.microsoft.com/wiki/contents/articles/6460.simulating-touch-input-in-windows-8-using-touch-injection-api.aspx

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