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

11

我想检测触摸板何时被点击!

通常我使用鼠标,所以不使用触摸板。相反,我希望在触摸板被点击时能够执行.NET中的操作。这样我就可以使用它作为快捷方式:轻点一下就会发生一些酷炫的事情。

这可能吗?如果是的话,有什么提示?我希望它可以在VB.NET或C#中运行。

我的理论是,我必须创建一个鼠标钩子,然后确定单击来自哪个设备。如果确定点击来自触摸板,则取消单击并执行doWhatever()。

谢谢!

*编辑* 嗯,“解决了”,有点巧合 :) 几天前Synaptics发布了他们最新的触摸板驱动程序和软件,其中包含一些新功能。由于我的笔记本电脑配备了Synaptics触摸板,我尝试了该软件,有趣的是,跟踪板指定单击执行操作的功能已经内置。

因此,实现了所需的功能,没有任何代码(至少没有我的代码:)。

感谢Adrian提供的RawInputSharp库链接。昨天我做了点小调整,我90%确定它可以用于此目的,以防笔记本电脑没有Synaptics触摸板。

1个回答

5
请查看这个页面上的RawInputSharp库。它使用pInvokes进入User32.dll以获取输入设备信息。使用它,您可以检测输入来自哪个设备(例如鼠标)。
经过一番尝试,我成功提取了一些代码,仅显示设备ID - 根据我使用USB鼠标或内部触摸板而有所不同。难点在于自动识别触摸板的设备ID,但是您可以在应用程序中手动配置此项。

感谢你的回答Adrian。我已经查看了这个页面,但是很明显这超出了我的能力范围。我会尝试寻求帮助,希望能够解决问题。我们弄清楚后我会通知你/给予答案奖励。 - Morten Kirsbo
1
哦,太棒了,现在我可以玩得开心了。我有一个15键小键盘,如果能将一堆东西与服务链接起来就太好了。 - msarchet
嗨,msarchet,那个键盘叫什么名字?听起来很有趣! - Morten Kirsbo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接