Autohotkey 自动热键,切换:按住Shift键,单击并每秒释放一次L按钮

Autohotkey 自动热键,切换:按住Shift键,单击并每秒释放一次L按钮,autohotkey,Autohotkey,我正在尝试制作一个自动热键脚本来保存Shift,当它保存Shift时,我需要鼠标每秒点击并释放它。这就是我到目前为止所想到的 Home:: 向下键:=!按下 如果按下键 SendInput{Shift down},单击,睡眠2000 其他的 SendInput{Shift up} 返回 经过一定时间后,此循环行为最好通过调用函数来实现 此外,由于脚本按住Shift键,因此还需要在按下Shift+Home时调用热键,以便将其关闭 最终代码: Home:: +Home:: ;Alternative

我正在尝试制作一个自动热键脚本来保存Shift,当它保存Shift时,我需要鼠标每秒点击并释放它。这就是我到目前为止所想到的

Home::
向下键:=!按下
如果按下键
SendInput{Shift down},单击,睡眠2000
其他的
SendInput{Shift up}
返回

经过一定时间后,此循环行为最好通过调用函数来实现

此外,由于脚本按住Shift键,因此还需要在按下Shift+Home时调用热键,以便将其关闭


最终代码:

Home::
+Home:: ;Alternative hotkey definition that invokes on Shift+Home
    KeyDown := !KeyDown
    if (KeyDown){
        SendInput {Shift down}
        gosub, clickSubroutine ;To trigger the first click immediately
        SetTimer, clickSubroutine, 1000 ;To trigger clicks after every 1000 ms (1 second)
    }
    else{
        SendInput {Shift up}
        SetTimer, clickSubroutine, Off ;Turn off the clickSubroutine Loop
    }
Return

clickSubroutine:
    Click
return

看起来不错,但我有两个小毛病:1)热键定义是多余的,因为除非您另外指定,否则自动热键会自动捕获每个热键的“大写”版本,包括按下
Shift
的时间。这是有案可查的。我认为一些缩进会使它更容易阅读。除此之外,这正是我要做的。回应挑剔@CharlieArmstrong:1。虽然
KeyDown
为真,但在添加
Shift
+
Home
热键定义之前,我无法触发热键。我明白你的意思,但我不认为它适用于
键,特别是考虑到该键没有标准的“大写”版本。2.缩进更新;谢谢你指出这一点。嗯,这很有趣。我只是将您的代码直接复制到一个新的AHK脚本中,删除了
+Home::
行,它的工作方式与预期的一样。可能是系统/版本相关的行为?缩进看起来不错:)