Autohotkey 重新映射问题自动热键

Autohotkey 重新映射问题自动热键,autohotkey,Autohotkey,请容忍我,我是个自动热键高手。我想让left:control和shift在按F2键时分别从其当前键值切换到arrow:down和up。当再次按下F2键时,我想要left:control和shift返回到它们原来的键值。这是我目前的代码: F2:: { if LShift = Up { LShift::Send {LShift} } else { LShift::Send {Up} } i

请容忍我,我是个自动热键高手。我想让left:control和shift在按F2键时分别从其当前键值切换到arrow:down和up。当再次按下F2键时,我想要left:control和shift返回到它们原来的键值。这是我目前的代码:

F2::
{
    if LShift = Up
    {
        LShift::Send {LShift}   
    }
    else
    {
       LShift::Send {Up}        
    } 
    if LControl = Down
    {
       LControl::Send {LControl}    
    }
   else
   {
      LControl::Send {Down}     
   }    
}
很遗憾,我没能让它工作。任何帮助都将受到真诚的感谢

  • 跨越多行的热键不使用大括号。他们 从热键标签开始,以简单的
    返回结束
  • 不能用普通if语句括起热键标签。你必须使用 而不是特殊的#If语句
  • 嵌套热键也绝对不是您想要做的事情
  • 要重新映射密钥,可以使用单行热键语法
您几乎可以将代码缩短为:

F2::(F2Toggle:=!F2Toggle)

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

按F2键将在true和false之间切换变量
F2<代码>#如果F2Toggle
表示如果变量
F2Toggle
当前设置为True,则启用下面的热键
#If
标志着特殊的
#If
声明的结束。

非常感谢您的解释和代码!如果它解决了你的问题,你可以点击左边的复选标记来接受答案。