我正在寻找一种使用 AutoHotkey 通过键盘滚动的方法。如果我能以某种方式调整滚动速度就太好了。
答案1
您可以使用MouseClick
函数来模拟鼠标滚轮。下面是一个示例脚本,它允许您通过按住 CapsLock 键并按“w”向上滚动或按“s”向下滚动来滚动:
CapsLock & w::
MouseClick,WheelUp,,,10,0,D,R
return
CapsLock & s::
MouseClick,WheelDown,,,10,0,D,R
return
您可以通过将 改为更大的值来使其转动得更快10
。这是您希望滚轮滚动的“定位点”数量。
还有一个autohotkey.com 上的脚本它设置了数字键盘上的所有鼠标按钮和移动,尽管我还没有尝试过。
答案2
这是我刚刚编写的脚本。按 0 和向上或向下箭头键即可操作。如果您的计算机上没有数字键盘,您可以随时根据需要自定义这两个键。它的工作原理是,您可以按住 0 和箭头键并继续快速滚动。也许比滚轮本身更好?
0 & Up::
Loop
{
Send {WheelUp}
GetKeyState, T, Down
If T=U ; U is a state for up, D is a state for down
Break
}
Return
0 & Down::
Loop
{
Send {WheelDown}
GetKeyState, T, Down
If T=U ; U is a state for up, D is a state for down
Break
}
Return
答案3
鼠标滚轮热键 [Windows NT/2000/XP 或更高版本]
通过按键名称支持鼠标滚轮转动时触发的热键车轮向下和向上旋转。WheelLeft 和 WheelRight 在 v1.0.48+ 中也受支持,但对 Windows Vista 之前的操作系统无效。以下是一些鼠标滚轮热键的示例:
MButton & WheelDown::MsgBox You turned the mouse wheel down while holding down the middle button.
^!WheelUp::MsgBox You rotated the wheel up while holding down Control+Alt.
在 v1.0.43.03+ 中,内置变量事件信息包含车轮转动的量,通常为 1。但是,在下列情况下,A_EventInfo 可能大于或小于 1:
- 如果鼠标硬件报告的距离小于一个刻度,A_EventInfo 可能包含 0;
- 如果滚轮快速转动(取决于鼠标类型),A_EventInfo 可能大于 1。如下热键可以帮助分析您的鼠标:
~WheelDown::ToolTip %A_EventInfo%
鼠标滚轮的一些最有用的热键涉及滚动窗口文本的替代模式。例如,当您按住左 Control 键并转动滚轮时,以下一对热键会水平滚动而不是垂直滚动:
~LControl & WheelUp:: ; Scroll left.
ControlGetFocus, fcontrol, A
Loop 2 ; <-- Increase this value to scroll faster.
SendMessage, 0x114, 0, 0, %fcontrol%, A ; 0x114 is WM_HSCROLL and the 0 after it is SB_LINELEFT.
return
~LControl & WheelDown:: ; Scroll right.
ControlGetFocus, fcontrol, A
Loop 2 ; <-- Increase this value to scroll faster.
SendMessage, 0x114, 1, 0, %fcontrol%, A ; 0x114 is WM_HSCROLL and the 1 after it is SB_LINERIGHT.
return
最后,由于鼠标滚轮热键仅生成向下事件(从不生成向上事件),因此它们不能用作向上热键。
[来源:这里]
答案4
我将包含此解决方案,因为我已成功使用过它,并且它看起来比提到的其他解决方案更简单。您可以将数字从 3 调整为任意值以更改滚动量。
插入符号是 ctrl 键。因此 ctrl+pageup 和 ctrl+pagedown
^PgUp::
Send, {wheelup 3}
return
^PgDn::
Send {wheeldown 3}
return