我有一个 Logitech Marble 轨迹球(顺便说一句,它很棒)。通过将其中一个额外按钮设置为“鼠标中键”,当我单击它时,许多应用程序(如浏览器)将启动“滚动模式”,这样移动轨迹球就会上下滚动。大多数情况下,这已经足够了,但我认为如果我可以有几种“模式”来执行缩放、平移、旋转(特别是在 GIMP 中)等不同操作,那就更酷了。然后,当我按住 CTRL、CTRL+SHIFT 或类似键时,它将进入新模式,轨迹球的行为也会有所不同。
我发现了一些类似的问题,它们建议使用 AutoHotKey,但我没有找到执行此操作的示例脚本,也没有找到在 AHK 中跟踪鼠标移动的方法。有什么提示吗?
谢谢!
答案1
经过一段时间的折腾,我终于想出了这个效果很好的脚本。按住 CapsLock 进入“鼠标滚轮”模式。也可以按住 CapsLock+Ctrl 来获得其他行为(如缩放),具体取决于应用程序。该脚本需要不断重置鼠标位置以使其保持在屏幕上,因此它会在模式持续时间内隐藏光标(抓住光标隐藏脚本也)。
CoordMode, Mouse, Screen
*CapsLock::
MouseGetPos, xposinit, yposinit
xposlast := xposinit
yposlast := yposinit
SystemCursor("Off")
SetTimer, ButtonHold, 10
KeyWait, CapsLock
SetTimer, ButtonHold, off
MouseMove, xposinit, yposinit, 0
SystemCursor("On")
Return
ButtonHold:
MouseGetPos, xpos, ypos
if (ypos > yposlast) {
MouseClick, WheelDown
} else if (ypos < yposlast) {
MouseClick, WheelUp
}
MouseMove, xposlast, yposlast, 0