Переназначить RShift, но позволить ему работать, когда он сочетается с другой клавишей в Autohotkey.

Я переназначил RShift следующим образом:

~RShift::Send {LShift}
RShift UP::Send {Alt down}{LShift}{Alt up}

Здесь я переназначил RShift на ALT+SHIFT, но когда я удерживаю RShift и набираю что-то, он по-прежнему будет выполняться как обычно (сделает его ШАПКИ). Моя единственная проблема в том, что когда я отпускаю, он все еще выполняет ALT+SHIFT, и я бы не хотел, чтобы он этого не делал, если я его удерживаю.

Я видел какое-то объяснение, что это как-то возможно, но я просто не могу его найти. :)

Спасибо!


person Vladi    schedule 09.01.2016    source источник


Ответы (1)


Это должно сработать для вас, объяснение в комментариях:

RShift::
    Send, {LShift down}                     ; Send our Left Shift down
    KeyWait, RShift                         ; Wait until Right Shift is released
    If (A_TimeSinceThisHotkey < 500) {      ; If RShift was released very quickly do below..
        Send, {LSHift up}                   ; Release the initial Left Shift
        Send {Alt down}{LShift}{Alt up}     ; Send your sequence of keys
        Return                              ; exit from Sub Routine 
    }
    Else                                    ; else if Right Was held longer than 500 milliseconds
        Send, {LSHift up}                   ; Release the initial Left Shift
Return                                      ; exit from Sub Routine 
person errorseven    schedule 09.01.2016
comment
Ааа.. вы добавили KeyWait, теперь это просто красиво! Большой респект :) - person Vladi; 09.01.2016