如何使Windows触摸板像Mac触摸板一样?

时间:2012-01-21 12:27:52

标签: c windows winapi mouse driver

我正在尝试使用WINAPI为Windows写一些东西,所以我可以让触摸板做任何mac触摸板。

我已经使用Spy ++检查了两个手指点击等发送给操作系统的WM消息,但发现它只发送那些加/减:

WM_LBUTTONDOWN
WM_LBUTTONUP
WM_MOUSEHOVER
WM_MOUSEHWHEEL
WM_MOUSELEAVE
WM_MOUSEMOVE
WM_RBUTTONDOWN
WM_RBUTTONUP

当我试着看到用3或2个手指点击时发生了什么,它没有发送任何特定的信息,除非我稍微移动它们。

首先我想从这开始:

当5个手指向下显示桌面时(win+D确实如此)。

  • 如何写(驱动程序?)可以诊断5个手指同时触摸触摸板的东西? 诅咒没有这方面的操作系统消息,但我可以对现有消息进行一些独特的组合,并通过它来挖掘它。

  • 如果我需要编写驱动程序,我可以为大多数触控板执行通用操作,我可以将其作为插件吗?

  • 如果您可以发布一个很好的教程,您熟悉为Windows编写驱动程序,请告诉我,我不知道它。

  • 我是否还需要考虑其他因素:

1. Diagnose 5 fingers mouse events.
2. Make a thread in Explorer on startup that handle those new mouse messages.

提前致谢

Mouse Input Notifications

1 个答案:

答案 0 :(得分:4)

简而言之,你不能。

首先,触摸板只能触摸1个手指触摸,对于那些可以检测到多个触摸板的触摸板,他们的驱动程序会为您进行翻译。

Windows对读取多个触摸输入没有任何固有的支持 - 它依赖于触摸板驱动程序来提供它们。

您可以通过编写自己的触摸板驱动程序(可能从Linux触摸板驱动程序和Windows驱动程序开发工具包开始)来实现SOME设备的目标,但这远非简单。

而且,你需要为你想要支持的每个触控板设备做这件事(来自Synaptics,Alps Electric,Cirque等等)

只有在此之后,您才能继续在Explorer等应用程序中实现触摸板操作的反应。