Autohotkey - 3个按键?

时间:2017-04-15 11:43:19

标签: autohotkey

好的,快速提问。我有一个脚本,在right mouse is pressed + left ctrl is pressed时运行。

如何扩展此脚本,以便在按下left ctrl + w + right mouse时,将执行不同的脚本,但不会执行第一个脚本。

所以,如果我按下LCtrl + w + RButton,就会执行一件事,如果按LCtrl + RButton,会执行另一件事吗?

我希望这不会太混乱..

我尝试过的例子......

~LCtrl & ~RButton:: ; do something

#if GetKeyState("RButton","LCtrl") && GetKeyState("RButton","LCtrl") 
    ~w::
        ; do something
    return
#if

问题是,当我尝试左ctrl +右键+ w时,第一个脚本也会执行..

2 个答案:

答案 0 :(得分:1)

标准语法是

#if getkeystate("w", "P") ; # this "#if" is only for hotkey definitions conditions, not to be confused with "if"
LCtrl & RButton::
     ; do this
return
#if ; end of hotkey conditions
LCtrl & RButton:: ; w is not pressed
    ; do that
return

这个问题已经存在多次了。

答案 1 :(得分:0)

三重组合很难配合使用。我能想出的最好的是:

方法1:

~LCtrl & ~RButton up::
    Input, key, L1 T0.5
    if (key == "w")
        MsgBox % "You pressed LCtrl & Rbutton & W"
    else 
        MsgBox % "You just pressed LCtrl & RButton"     
return 

方法2:

~LCtrl & ~RButton::
    While (A_TimeSinceThisHotkey < 500) {
        If (GetKeyState("w", "P")) {
            MsgBox % "You pressed LCtrl & RButton & W"
            return
        }
    }
    MsgBox % "You Pressed LCtrl & RButton"
return