为c# / . net中的PostMessage()创建一个WM_TOUCH消息

本文关键字:一个 WM 消息 TOUCH 创建 中的 net PostMessage | 更新日期: 2023-09-27 18:01:30

(对于背景,参见为SendMessage()编写WM_TOUCH消息,Kinect作为一个多点触控设备,它问的基本上和我的问题相同,但它的接受答案实际上并没有回答这个问题。)棘手的一点不是填充TOUCHINPUT结构,而是制作一个有效的触摸输入句柄。

我想以一种讨厌的黑客方式模拟多点触控输入设备的存在,其大纲如下:

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

棘手的一点是在标记为"…"的空间里放了什么。MSDN文档,从WM_TOUCH消息的消费者的角度来看,这并不奇怪,说WM_TOUCH消息的lParam

一个触摸输入句柄,可以在调用GetTouchInputInfo时使用,以检索与此消息相关的触摸点的详细信息。

我可以很容易地制作,例如,TOUCHINPUT结构的数组,这就是GetTouchInputInfo给你的。但这似乎与"触摸输入手柄"是完全不同的东西。(例如,触摸输入句柄需要是传递给CloseTouchInputHandle的正确类型的东西,据称PostMessageSendMessage将会这样做。)

是否有可能(正式或非正式!)为用户代码生成一个有效的触摸输入句柄,它可以传递给PostMessage ?如果是,如何?

为c# / . net中的PostMessage()创建一个WM_TOUCH消息

Windows 8有一个用于在桌面环境中伪造触摸的TouchInjection API。

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

相关文章: