我们将在双监视器的情况下使用带有Windows XP(嵌入式)的单个PC (瘦客户端)。
两个屏幕都打开了自己的浏览器窗口(可能是子窗口)
我们的目标是通过两个独立的浏览器窗口实现鼠标和触摸屏工作。
现在我们可以使用raw inputs
读取鼠标和触摸屏(请参阅下面的链接),并确定生成事件的设备。
我们的想法是从raw_input
组件中的触摸屏拦截ActiveX
事件并将其发送给JS,并取消传播事件,因此触摸屏事件不会干扰主鼠标。
问题:如何从特定的HID(鼠标)设备取消传播(LEGACY)事件,或者如果有其他方法可以使其工作,可能会有一点或分享有关如何实现的信息这个(MSDN或smth)因为我们在编写驱动程序方面没有太多经验。
答案 0 :(得分:0)
如何取消传播(LEGACY) 来自特定HID(鼠标)的事件 设备
鼠标消息将发布到输入线程的消息队列中。鼠标消息的范围为WM_MOUSEFIRST
到WM_MOUSELAST
。最简单的方法是修改消息泵,使其吞下此范围内的消息。
安排你的消息泵看起来像这样:
while(GetMessage( &msg, hWnd, 0, 0 ))
{
if ((msg.message<WM_MOUSEFIRST) || (msg.message>WM_MOUSELAST))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
答案 1 :(得分:0)
http://msdn.microsoft.com/en-us/library/ms648383(v=vs.85).aspx
...然后当一个鼠标事件从触摸设备进入,因为它在剪辑区域之外被忽略但是WM_INPUT事件仍然被触发,因此您可以捕获它们并将您自己的鼠标单击事件直接发布到浏览器从技术上讲,它不会移动光标,因此不受剪辑的影响。
我已经有一段时间了,所以如果这不起作用,请原谅我。我明天会尝试挖掘我的旧原型,看看我是否找到了任何宝石。