重新映射问题 Autohotkey

Remapping issue Autohotkey

请耐心等待,我是一个自动热键菜鸟。我想要 left: control 和 shift 在按下 F2 键时分别从当前键值切换到 arrow: down 和 up 。当再次按下 F2 键时,我想要 left: control 并移至 return 到其原始键值。到目前为止,这是我的代码:

F2::
{
    if LShift = Up
    {
        LShift::Send {LShift}   
    }
    else
    {
       LShift::Send {Up}        
    } 
    if LControl = Down
    {
       LControl::Send {LControl}    
    }
   else
   {
      LControl::Send {Down}     
   }    
}

遗憾的是我没能让它发挥作用。任何帮助将不胜感激。

  • 跨越多行的热键不使用大括号。他们 以热键标签开始,以简单的 Return.
  • 结束
  • 您不能用普通的 if 语句包含热键标签。你必须使用 改为使用特殊的 #If 语句。
  • 嵌套热键也绝对不是你想做的。
  • 要重新映射键,您可以使用单行热键语法。

您几乎可以将代码缩短为:

F2::(F2Toggle:=!F2Toggle)

#If F2Toggle
    LShift::Up
    LControl::Down
#If

按 F2 将在 true 和 false 之间切换变量 F2Toggle#If F2Toggle 表示如果变量 F2Toggle 当前设置为 True 则启用下面的热键。 #If 标记特殊 #If 语句的结尾。