如何使用AHK在两个函数之间切换一个键

时间:2015-02-19 17:02:30

标签: autohotkey

我如何在AHK中创建一个热键,它在第一次按下时运行一个功能,另一个在第二次按下时运行。我试图模仿开/关场景。

可以这样做,如果是这样的话?

像我这样的伪代码就是我正在寻找的东西:

#space::toggleit()

toggleit()
{
   if (last time it was pressed, functionA was run)
      run functionB
   else
      run functionA
}

我使用AHK版本1.1.19.01

3 个答案:

答案 0 :(得分:2)

尝试使用AutoHotkey的hotkey - 命令:

hotkey, #space, functionA
return

functionA:
hotkey, #space, functionB
msgbox, A
return

functionB:
hotkey, #space, functionA
msgbox, B
return

如果您只想在functionA和“不执行任何操作”之间切换,可以使用以下内容:

hotkey, #space, functionA, toggle
return

functionA:
msgbox, A
return

答案 1 :(得分:0)

一种简单的方法是使用变量:

setting := false
toggleit()
{
   if setting
      run functionB
   else
      run functionA
   setting := !setting
}

答案 2 :(得分:0)

我找到了解决方案。把它放在这里以获取其他好处:

#space::tog()

tog()
{
    static togstate = 0
    if (togstate = 1)
    {
        msgbox ON
        togstate = 0
    }
    else
    {
        msgbox OFF
        togstate = 1
    }
}