有人可以向我解释这个autohotkey脚本吗?

时间:2014-09-02 02:32:55

标签: autohotkey

它应该让我在游戏中打开和关闭一个开关按钮(而不是必须按住它)。它有效,但我想知道如何

$w:: Gosub, AutorunToggleME2
~s:: Gosub, AutoRunOffME2

AutorunToggleME2:
toggle := !toggle
Send % "{w " . ((Toggle) ? ("down") : ("up")) . "}"
return

AutoRunOffME1:
toggle = ; Off
Send {w up}
return

具体来说,我想要以下几行:

Send % "{w " . ((Toggle) ? ("down") : ("up")) . "}"

Send {w up}

1 个答案:

答案 0 :(得分:4)

代码假装按住 w here解释了基本的Send语法。

  

按住或释放键:括起键的名称   然后是Down或Up这个词。例如:

Send {b down}{b up} 
Send {TAB down}{TAB up} 
Send {Up down}  ; Press down the up-arrow key. 
Sleep 1000  ; Keep it down for one second. 
Send {Up up}  ; Release the up-arrow key.

所以这一行:

Send {w up}

显然正在释放 w

另一条线更复杂:

Send % "{w " . ((Toggle) ? ("down") : ("up")) . "}"

您可以找到相关语法here的解释。

基本上:

  • %表示以下文字是表达式
  • .是字符串连接运算符。
  • 这部分((Toggle) ? ("down") : ("up"))是条件运算符(a.k.a三元运算符)。它是if/else语句的简写。在这种情况下,当Toggle为真时,它返回“向下”,否则返回“向上”。

根据Send {w down}的值(真或假),这适用于Send {w up}Toggle