Изменить ключевую функцию на х количество времени? - PullRequest
0 голосов
/ 10 апреля 2020

Итак, благодаря этому пользователю у меня есть этот рабочий код, но я хочу еще больше настроить его, если это возможно. : D

Вот код:

global s:=0, c:=0, t:=1500, t2:=380

*lbutton::
    send % Seqkeys("5","6")
    KeyWait, lbutton
    If (A_TickCount-s < t2)
        c := 0
    Send, 7
return

Seqkeys(params*) { 
    global s, c, t
    max := params.MaxIndex()
    (A_TickCount-s<=t && (c+=1)<=max) ? c : c:=1
    s := A_TickCount
    return params[c]
}

Что я хочу реализовать, так это то, что, если я нажму правую кнопку мыши (Rbutton), оригинальные lbutton seqkeys код изменяется на этот код в течение 1 секунды

*lbutton::
    send, 8
    KeyWait, lbutton
    Send, 7
return

, после чего код 1 se c заканчивается, код возвращается к исходному состоянию seqkeys.

Я получил этот пример кода, но он не работает должным образом по нескольким причинам, когда я нажимаю кнопку R, он переопределяет исходную функцию Seqkeys, но никогда не сбрасывается обратно на функцию seqkeys. Я положил его сюда, может быть, это поможет

*rbutton::
toggle:=true
return

#If Toggle
*lbutton::
    send, 8
    KeyWait, lbutton
    Send, 7
return
toggle:=false
Return
#If

Спасибо еще раз! :)

1 Ответ

1 голос
/ 12 апреля 2020

Причина, по которой он никогда не сбрасывается обратно на Seqkeys(params*) после переключения, заключается в том, что toggle:=false находится за пределами горячей клавиши lgutton. Помещение его внутрь переключателя lbutton переключателя до того, как оператор return решит проблему.

#If Toggle
*lbutton::
    send, 8
    KeyWait, lbutton
    Send, 7
    toggle:=false
return
...