确定在.NET中单击了哪个鼠标(多个鼠标设备)

我想检测点击触控板的时间!

我通常使用USB鼠标,所以我不使用触摸板。 相反,我希望能够在单击触摸板时在.NET中执行操作。 通过这种方式,我可以将它作为一种捷径:一次点击,一些很酷的事情发生。

这是可能的,如果是的话,任何线索如何? 我更喜欢它是否可以在VB.NET或C#中工作。

我的理论是,我必须做一个鼠钩,然后以某种方式确定点击来自哪个设备。 如果确定点击是来自触摸板,则取消点击并执行任务()。

谢谢!

*编辑*嗯,它已经“解决了”,有点像:)奇怪的是,Synaptics日前发布了他们最新的触摸板驱动程序和软件以及一些新的function。 由于我的笔记本电脑有一个synaptics触摸板,我试用了该软件,有趣的是,内置了指定触控板上的点击以执行操作的function。

所以已经实现了所需的function,没有一行代码(我自己的代码:)。

回答Adrian虽然链接到RawInputSharp库。 我昨天做了修补,我90%肯定可以用于此目的,如果笔记本电脑没有synaptics触控板。

从这个页面看一下RawInputSharp库。 它使用pInvokes进入User32.dll来获取输入设备信息。 使用它可以检测来自哪个设备(即鼠标)输入。

玩了一下之后,我设法提取了一些只显示设备ID的代码 – 根据我是使用USB鼠标还是内置触摸板而不同的值。 棘手的是要自动识别哪个设备ID是触摸板的设备ID,但您可以在应用程序中手动配置它。