2016-12-10 2 views
0

Ich habe das folgende autohotkey Skript. Ich möchte das (1), wenn ich den RShift drücke und loslasse, das Skript für den nächsten Tastendruck aussetzt (d. H. Für nur einen Tastendruck) und (2) wenn ich den RShift drücke und halte, wird das Skript ausgesetzt, bis ich RShift freigebe. Leider führt der folgende Code nur (2) nicht (1). Ich suche nach einem korrekten Code, um sowohl (1) als auch (2) durchzuführen.Wie man das autohotkey Skript für nur einen Tastendruck unterbricht, wenn die RSHIFT Taste gedrückt wird

AppsKey::RButton 

RShift::Suspend, On 
RShift Up::Suspend, Off 

Antwort

1
RShift:: 
KeyWait, RShift, T0.3 
; Release RShift in less than 0,3 seconds after pressing it 
; to suspend the script for the next keystroke 
If (!ErrorLevel) 
{ 
    Suspend On 
    ; BlockInput On 
    SetTimer OneKeyPressed, 200 
} 
else 
{ 
; Hold RShift pressed for more than 0,3 seconds 
; to suspend until you release RShift 
    while GetKeyState("RShift", "P") 
     Suspend On 
    KeyWait, RShift, L 
     Suspend, Off 
} 
return 


#If A_IsSuspended 

    RShift Up:: Suspend, Off 

#If 

OneKeyPressed: 
If (A_TimeIdlePhysical < 100) 
{ 
    SetTimer OneKeyPressed, off 
    ; BlockInput Off 
    Suspend Off 
} 
return 
+0

vielen Dank, scheint dies das Problem zu lösen. Lass mich eine Weile warten, um alternative Antworten zu bekommen. – Name

Verwandte Themen