在C#/.NET中为PostMessage()创建WM#U TOUCH消息
(有关背景信息,请参见哪个问题与我的问题基本相同,但谁接受的答案实际上没有回答这个问题。棘手的一点不是填充在C#/.NET中为PostMessage()创建WM#U TOUCH消息,c#,.net,winapi,multi-touch,wm-touch,C#,.net,Winapi,Multi Touch,Wm Touch,(有关背景信息,请参见哪个问题与我的问题基本相同,但谁接受的答案实际上没有回答这个问题。棘手的一点不是填充TOUCHINPUT结构,而是制作一个有效的触摸输入句柄。) 我想以一种令人讨厌的黑客方式模拟多点触摸输入设备的存在,其概要如下: while (true) { choose locations etc. for simulated touches; PostMessage(GetForegroundWindow(), WM_TOUCH, nTouches, ...); } 棘手的
TOUCHINPUT
结构,而是制作一个有效的触摸输入句柄。)
我想以一种令人讨厌的黑客方式模拟多点触摸输入设备的存在,其概要如下:
while (true) {
choose locations etc. for simulated touches;
PostMessage(GetForegroundWindow(), WM_TOUCH, nTouches, ...);
}
棘手的一点是,在那个标有“…”的空间里会出现什么。从WM\u TOUCH
消息消费者的角度编写的MSDN文档表示WM\u TOUCH
消息的lParam
是
一种触摸输入手柄,可在调用GetTouchInputInfo
时使用,以检索与此消息相关的触摸点的详细信息
例如,我可以很容易地制作一组TOUCHINPUT
结构,这就是GetTouchInputInfo
提供给您的。但这似乎与“触摸输入手柄”完全不同。(例如,触摸输入手柄需要是传递给CloseTouchInputHandle
的正确类型,据称PostMessage
或SendMessage
就可以了。)
用户代码是否可能(正式或非正式!)生成一个有效的触摸输入句柄,它可以传递给
PostMessage
?如果可以,Windows 8如何在桌面环境中使用TouchInjection API来伪造触摸
说“不行”很难。嗯,不,不可能。你需要SendInput()的等价物,它不存在于touch中。这也是我的猜测!我只是希望会有一些邪恶的非法手段。(例如,可能一个触摸输入手柄实际上只是一个指向一堆触摸输入结构的指针——尽管这需要一些极不可能的魔法,因为指针不能在进程之间有意义地传递。)你的“不可能”是指“不合法的方式”还是“绝对不可能,包括讨厌的黑客”?