我一直在尝试弄清楚如何“捕捉”触控板上的三指和四指滑动,以便将自定义键盘命令绑定到它们。我认为也可以用同样的方式禁用“点击即单击”功能。
我的想法是使用自动热键捕捉信号并将动作(或不动作)绑定到该鼠标输入。问题是默认驱动程序不会将此信息传递给系统。
有人知道如何从系统获取原始输入到 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,因此您必须先安装并运行它们。