如何使用键盘通过 AutoHotkey 模拟鼠标滚轮滚动?

如何使用键盘通过 AutoHotkey 模拟鼠标滚轮滚动?

我正在寻找一种使用 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

相关内容