【问题标题】:Remapping issue Autohotkey重新映射问题 Autohotkey
【发布时间】:2017-07-05 19:49:50
【问题描述】:

请多多包涵,我是一个自动热键菜鸟。我想要 left: control 和 shift 在按下 F2 键时分别从它们当前的键值切换到箭头: down 和 up。而当再次按下 F2 键时,我想向左:control 和 shift 返回到它们原来的键值。到目前为止,这是我的代码:

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

很遗憾,我无法让它工作。任何帮助将不胜感激。

【问题讨论】:

    标签: autohotkey


    【解决方案1】:
    • 跨越多行的热键不使用花括号。他们 以热键标签开头,以简单的Return 结尾。
    • 您不能用普通的 if 语句括起热键标签。你必须使用 而是使用特殊的 #If 语句。
    • 嵌套热键也绝对不是你想做的。
    • 要重新映射键,您可以使用单行热键语法。

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

    F2::(F2Toggle:=!F2Toggle)
    
    #If F2Toggle
        LShift::Up
        LControl::Down
    #If
    

    按 F2 将在真假之间切换变量 F2Toggle#If F2Toggle 表示如果变量 F2Toggle 当前设置为 True,则启用下面的热键。 #If 标志着特殊 #If 语句的结束。

    【讨论】:

    • 非常感谢您的解释和代码!你让我开心:)
    • 如果它解决了您的问题,您可以点击左侧的复选标记接受答案。
    猜你喜欢
    • 2021-09-04
    • 2011-06-14
    • 1970-01-01
    • 1970-01-01
    • 2018-12-15
    • 1970-01-01
    • 2012-08-09
    • 2011-05-21
    • 2019-04-03
    相关资源
    最近更新 更多