Scroll 使用自动热键降低滚动速度

Scroll 使用自动热键降低滚动速度,scroll,autohotkey,Scroll,Autohotkey,我今天早些时候下载了AutoHotKey,以便恢复我的华硕笔记本电脑上的滚动。我找到了一个剧本,里面有翻版,我很容易理解 这是原始脚本-正在运行 WheelUp:: Send {WheelDown} Return WheelDown:: Send {WheelUp} Return 然而,滚动速度太快了,我决定制作自己的脚本来降低滚动速度。我目前正在攻读计算机科学硕士学位,所以我已经编程好几年了,所以我认为这项任务很简单——它实际上是一个简单的脚本 所以我尝试了一下,我想出了一些代码——唯一的

我今天早些时候下载了AutoHotKey,以便恢复我的华硕笔记本电脑上的滚动。我找到了一个剧本,里面有翻版,我很容易理解

这是原始脚本-正在运行

WheelUp::
Send {WheelDown}
Return

WheelDown::
Send {WheelUp}
Return
然而,滚动速度太快了,我决定制作自己的脚本来降低滚动速度。我目前正在攻读计算机科学硕士学位,所以我已经编程好几年了,所以我认为这项任务很简单——它实际上是一个简单的脚本

所以我尝试了一下,我想出了一些代码——唯一的问题是:它不工作!没有编译错误,我也不知道为什么。问题是:为什么下面的代码不起作用?它一点也不闪烁,但滚动条已注册,因为启用了输入过多的警告

global UpSpeed := 0
global DownSpeed := 0

WheelUp::
global UpSpeed := global UpSpeed++
  if (global UpSpeed > 2)
  { 
    Send {WheelDown}
    global UpSpeed := 0
  }
  Return



WheelDown::
global DownSpeed := global DownSpeed++
  if (global UpSpeed > 2)
  { 
    Send {WheelUp}
    global DownSpeed := 0
  }
  Return

我建议使用
Sleep
,而不是使用计数器和跳过控制盘事件。您的方法的问题是,在最坏的情况下,它会跳过前三个车轮事件。您不希望在开始滚动时发生这种情况。也就是说,在长时间不滚动后,第一个事件应立即触发滚动,而不是在您多次旋转滚轮之后。
通过根据您的需要调整
睡眠时间
,此代码应该可以实现以下功能:

$WheelUp::
    Send {WheelDown}
    Sleep, 75
Return

$WheelDown::
    Send {WheelUp}
    Sleep, 75
Return
对于您的代码:
global
声明仅在第一行的函数中有意义。奇怪的是,代码确实可以编译,但在语法上毫无意义。自动执行部分或(热键)标签中定义的变量无论如何都是全局变量。
此外,默认情况下,在AHK中发送密钥会触发它自己的热键。在这里,发送
WheelDown
最终将导致发送
WheelDown
,反之亦然。
$
修饰符将阻止这种情况发生