2013-02-27 82 views
0

(有关背景知识,请参阅Composing a WM_TOUCH message for SendMessage(), Kinect as a multi-touch device,它基本上与我的问题基本相同,但其接受的答案实际上并不回答问题。 TOUCHINPUT结构,但做一个有效的触摸输入句柄)在C#/ .NET中为PostMessage()创建WM_TOUCH消息

我想模拟多点触摸输入设备的存在在一个讨厌的hackish的方式,这在轮廓是这样的:

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

的棘手的一点是在那个标有“...”的空间里。 MSDN文档,这是勿庸置疑从一个WM_TOUCH消费者的消息的点写,说,lParamWM_TOUCH信息是,可以在呼叫过程中用来GetTouchInputInfo

触摸输入手柄以检索关于与该消息相关联的触摸点的详细信息。

我可以很容易地做出,例如TOUCHINPUT结构的数组,这就是GetTouchInputInfo给你的结果。但是,这似乎与“触摸输入句柄”完全不同。 (例如,触摸输入句柄必须正确类的事情传递给CloseTouchInputHandle,据称PostMessageSendMessage就行了。)

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

+0

说“不行”很难做到。嗯,不,没办法。你需要相当于SendInput(),它不存在触摸。 – 2013-02-27 18:18:15

+0

这也是我的猜测!我只是希望可能有一些邪恶的无证方法来做到这一点。 (例如,也许触摸输入句柄实际上在引擎盖下,只是一个指向一堆TOUCHINPUT结构的指针 - 尽管这需要一些非常不可思议的魔法,因为在进程之间不能有意义地传递指针。)您的“否方式“是指”没有合法的方式“或”绝对没有办法,包括讨厌的黑客“? – 2013-02-28 09:27:29

回答