Autohotkey Keywait für eine der beiden freizugebenden Tasten

0

Ich weiß, dass Sie in Autohotkey mit "KeyWait" warten können, bis eine Taste gedrückt oder losgelassen wird. Was kann ich tun, wenn ich in der Lage sein möchte, auf die Freigabe einer der beiden Tasten zu warten?

Ich habe dies im Web gefunden, aber es ist, wenn Sie warten möchten, bis eine der beiden Tasten gedrückt wird

LButton & XButton1::
Keywait, r
Keywait, LAlt
SendInput {ShiftDown}
SendInput {v Down}
SendInput {v Up}
SendInput {Shift Up}

Input, UserInput,v,{LButton}{XButton1}
;v is if you want input to be visible
if ErrorLevel=EndKey:LButton
{
    theFunctionIrunAlltheTime()
    Return
}
else if ErrorLevel=EndKey:XButton1
{
    theFunctionIrunAlltheTime()
    Return
}

Unabhängig davon, welche dieser Schaltflächen freigegeben ist, möchte ich dasselbe tun. Ich denke, das obige Beispiel funktioniert nur mit Buchstaben, nicht mit Schaltflächen. Wichtig ist jedoch, dass LButton n XButton1 bereits gedrückt ist, wenn das Skript ausgeführt wird und ich möchte in der Mitte der Subroutine erkennen, wann einer von ihnen freigegeben wird, bitte eine Idee ??? danke weiterentwickelt.

litu16
quelle

Antworten:

0

Versuchen Sie auch dies:

~LButton & XButton1::
SetTimer detect_key_released, 50
; do sth
return

    detect_key_released:
If !GetKeyState("LButton", "P")
{
    SetTimer detect_key_released, off
    MsgBox LButton released
    return
}
If !GetKeyState("XButton1", "P")
{
    SetTimer detect_key_released, off
    MsgBox XButton1 released
    return
}
return
user3419297
quelle
ja das hat geklappt, aber besser, könntest du das bitte überprüfen ?? superuser.com/questions/1177548/...
litu16
2
While GetKeyState("LButton") && GetKeyState("XButton1")
    Sleep 10

; msg to user assumes only one or the other was released...
MsgBox % (GetKeyState("LButton") ? "XButton1" : "LButton") " Released"
JJohnston2
quelle
danke JJohnston2, ist es nicht möglich, es wo mit einer Schleife zu tun, oder? Könnten Sie sich bitte diese Frage ansehen? danke vorgerückt. superuser.com/questions/1177548/...
litu16