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

时间:2010-03-20 19:04:16

标签: c# vb.net

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

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

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

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

谢谢!

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

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

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

1 个答案:

答案 0 :(得分:5)

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

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