【问题标题】:How to make a Windows touch pad acts like a Mac touch pad?如何使 Windows 触摸板像 Mac 触摸板一样工作?
【发布时间】:2012-01-21 12:27:52
【问题描述】:

我正在尝试使用 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

【问题讨论】:

  • 许多触控板不支持超过两次的触控。有些甚至不支持多个。您可以获得支持两指滚动的驱动程序,但这些驱动程序取决于硬件。

标签: c windows winapi mouse driver


【解决方案1】:

简而言之,你不能。

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

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

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

而且,您需要为您想要支持的每一个触摸板设备(来自 Synaptics、Alps Electric、Cirque 等等)执行此操作

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

【讨论】:

  • 小修正:Windows 确实支持多点触控。请参阅WM_TOUCH 消息。但是,这取决于驱动程序支持,这是此处缺少的链接。
  • 感谢您的澄清,我忘记了 WM_TOUCH。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-23
  • 2021-01-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多