使用 Magic Trackpad 时,如何在 Windows 中捕获鼠标事件?

使用 Magic Trackpad 时,如何在 Windows 中捕获鼠标事件?

我一直在尝试弄清楚如何“捕捉”触控板上的三指和四指滑动,以便将自定义键盘命令绑定到它们。我认为也可以用同样的方式禁用“点击即单击”功能。

我的想法是使用自动热键捕捉信号并将动作(或不动作)绑定到该鼠标输入。问题是默认驱动程序不会将此信息传递给系统。

有人知道如何从系统获取原始输入到 Windows 中 Autohotkey 的鼠标信号吗?是某个应用程序、DLL 还是其他什么东西?

这些代码来自我能够从 Magic Trackpad 中捕获的默认 Autohotkey:

VK  SC  Type    Up/Dn   Elapsed Key
02  000     d   1.22    RButton         
02  000     u   0.00    RButton         
9E  001     d   2.15    WheelDown       
9E  001     d   0.03    WheelDown       
9F  001     d   1.22    WheelUp         
9F  001     d   0.02    WheelUp         
9D  001     d   1.83    WheelRight      
9D  001     d   0.00    WheelRight      
9C  001     d   1.22    WheelLeft       
9C  001     d   0.02    WheelLeft       

使用上面的 WheelLeft 函数,我使用 Autohotkey 中的以下函数创建了用于双指滑动的“后退”按钮:

WheelLeft::
 winc_presses = 1
 SetTimer, Whleft, 400 ; Wait for more presses within a 400 millisecond window.
return

Whleft: 
 SetTimer, Whleft, off ; Disable timer after first time its called.
 if winc_presses >= 1 ; The key was pressed once or more.
 {
  SendInput, !{Left} ; Send alt + left for back button (in Chrome at least)
 }
 ; Regardless of which action above was triggered, reset the count to prepare for the next series of presses:
 winc_presses = 0
 return

使用 400 毫秒延迟是因为扫描会导致多个 WheelLeft 被发送到计算机。这只会在 400 毫秒内捕获其中的第一个。我们不想多次发送后退命令。查看 uberoptions.net 了解已为 Logitech MX1000 实施的类似解决方案。

那么,有人知道如何从 Magic Trackpad 获取其他手势,以便我们可以在 Windows 中正确使用它吗?

答案1

这很有趣:http://www.trackpadcontrol.com/blog/24-an-impossible-battery-gauge.html 看来苹果故意隐藏了触控板上除了单指和双指输入之外的所有输入。我不是 HID 方面的专家,但有人能不能为触控板编写自己的驱动程序,然后接收使用苹果驱动程序时隐藏的原始鼠标数据。您可以尝试执行此人所做的操作,卸载苹果驱动程序,然后尝试使用自动热键。

我很想让我的 Magic Trackpad 在 Windows 上获得完整的多点触控支持,可惜苹果坚持不允许 Windows 用户使用多点触控 :/

答案2

触控板++可以让您使用 MacBook Pro 的 3 和 4 手指手势,但当我运行 AutoHotkey 时,它似乎不起作用。也许您只能同时运行一个带有鼠标/键盘挂钩的应用程序?

从常见问题解答来看,Bootcamp 驱动程序似乎将 3 和 4 指手势暴露给 Windows,因此您必须先安装并运行它们。

相关内容