处理多个鼠标

时间:2011-05-01 11:52:39

标签: windows winapi mouse

我们将在双监视器的情况下使用带有Windows XP(嵌入式)的单个PC (瘦客户端)。

One of korean bank

  • First Monitor :由Bank使用 官员(鼠标和键盘)官员将使用浏览器,也使用一些银行win32应用程序
  • 第二台显示器(触摸屏 - elotouch):位于官员访客对面的访客使用 在浏览器中反馈html按钮 (第二个窗口),没有打扰 操作员的鼠标移动

两个屏幕都打开了自己的浏览器窗口(可能是子窗口)
我们的目标是通过两个独立的浏览器窗口实现鼠标和触摸屏工作。

现在我们可以使用raw inputs读取鼠标和触摸屏(请参阅下面的链接),并确定生成事件的设备。 我们的想法是从raw_input组件中的触摸屏拦截ActiveX事件并将其发送给JS,并取消传播事件,因此触摸屏事件不会干扰主鼠标。

问题:如何从特定的HID(鼠标)设备取消传播(LEGACY)事件,或者如果有其他方法可以使其工作,可能会有一点或分享有关如何实现的信息这个(MSDN或smth)因为我们在编写驱动程序方面没有太多经验。

2 个答案:

答案 0 :(得分:0)

  

如何取消传播(LEGACY)   来自特定HID(鼠标)的事件   设备

鼠标消息将发布到输入线程的消息队列中。鼠标消息的范围为WM_MOUSEFIRSTWM_MOUSELAST。最简单的方法是修改消息泵,使其吞下此范围内的消息。

安排你的消息泵看起来像这样:

while(GetMessage( &msg, hWnd, 0, 0 ))
{ 
    if ((msg.message<WM_MOUSEFIRST) || (msg.message>WM_MOUSELAST))
    {
        TranslateMessage(&msg); 
        DispatchMessage(&msg); 
    }
}

答案 1 :(得分:0)

几年前我玩过类似的东西,请原谅我有点模糊,但我认为我已经成功将光标锁定在主屏幕上,而ClipCursor位于user32 API中......

http://msdn.microsoft.com/en-us/library/ms648383(v=vs.85).aspx

...然后当一个鼠标事件从触摸设备进入,因为它在剪辑区域之外被忽略但是WM_INPUT事件仍然被触发,因此您可以捕获它们并将您自己的鼠标单击事件直接发布到浏览器从技术上讲,它不会移动光标,因此不受剪辑的影响。

我已经有一段时间了,所以如果这不起作用,请原谅我。我明天会尝试挖掘我的旧原型,看看我是否找到了任何宝石。