2010-03-20 38 views
11

我想要检测触摸板何时点击!确定在.NET中点击了哪个鼠标(多个鼠标设备)

我通常使用USB鼠标,所以我不使用任何触摸板。相反,当我点击触摸板时,我想让它可以在.NET中执行一个动作。通过这种方式,我可以将其用作快捷方式:一次点击就会发生一些事情。

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

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

谢谢!

*编辑* 嗯,这是“解决”,那种:)在一个奇怪的巧合,Synaptics公司发布了他们最新的驱动程序和软件,其触摸板前几天有一些新的功能。由于我的笔记本电脑配备了synaptics触摸板,我试用了该软件,并且有趣的是,内置了用于指定触控板上的点击以执行操作的功能。

因此,所需的功能已经实现,没有一行代码(我自己的代码无论如何:)。

答案去Adrian虽然为RawInputSharp库的链接。我昨天修好了它,并且我90%确定可以用于此目的,如果笔记本电脑没有synaptics触控板。

+0

+1:真的很酷的想法。 – 2010-03-22 09:54:46

回答

5

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

已经有了一点玩,我设法提取一些代码,只显示设备ID - 一个不同的值,取决于我使用我的USB鼠标或我的内部触摸板。棘手的事情是自动识别哪个设备ID是触摸板的设备ID,但您可以在应用程序中手动配置它。

+0

感谢您的答案阿德里安。我查看了该页面,但似乎(不出所料),这超出了我的水平。我会尝试获得一些帮助,并希望使其工作。当我们弄明白的时候,我会给你发布/授予答案。 – 2010-03-21 11:07:45

+1

哦,男孩,我现在要玩这个。我有一个15键的键盘,将一些东西链接到一个服务中会很棒。 – msarchet 2010-03-24 19:13:34

+0

嗨msarchet,键盘的名称是什么?听起来不错! – 2010-03-25 06:18:37