自动热键切换脚本

时间:2020-04-07 06:18:02

标签: automation autohotkey

我只是想使用相同的键盘映射(Ctrl + I)来切换命令:

#InstallKeybdHook
#UseHook

^i::
send, BLABLABLA
return

如果我按Ctrl + I,它将键入BLABLABLA(当然),并且我希望以一定的间隔(180秒)重复它,并且希望将其切换。怎么做?

1 个答案:

答案 0 :(得分:1)

您将要使用a timer

我不确定您为什么使用这两个#指令,它们没有对该脚本执行任何有用的操作。

但是关于使用计时器:
SetTimer, TimerCallback, 180000
这将创建一个计时器,每180,000毫秒(180秒)触发一次函数(或标签)TimerCallback
当然我们还没有定义函数TimerCallback,所以现在就开始做吧:

TimerCallback()
{
     Tooltip, hi
}

然后在热键上打开/关闭计时器:

^i::
     toggle := !toggle ;a convenient way to toggle a variable in AHK, see below of explanation
     if (toggle) ;if true
     {
          SetTimer, TimerCallback, 180000 ;turn on timer
          ;the function will only run for the first timer after 
          ;those 180 secs, if you want it to run once immediately
          ;call the function here directly:
          TimerCallback()
     }
     else
          SetTimer, TimerCallback, Off ;turn off timer
return

可以从我的here的先前答案中找到toggle := !toggle可变状态切换的说明。
还包括一个可爱的1liner计时器切换热键的示例。


这是完整的示例脚本:

^i::
     toggle := !toggle ;a convenient way to toggle a variable in AHK, see below of explanation
     if (toggle) ;if true
     {
          SetTimer, TimerCallback, 180000 ;turn on timer
          ;the function will only run for the first timer after 
          ;those 180 secs, if you want it to run once immediately
          ;call the function here directly:
          TimerCallback()
     }
     else
          SetTimer, TimerCallback, Off ;turn off timer
return

TimerCallback()
{
     Tooltip, hi
}