1

Тема: Клавиши-модификаторы не срабатывают для горячей клавиши.

Добрый день. Есть простой скрипт, который при удержании боковой клавиши мышки отправляет вместо правого клика клавишу f16.
В приложении, для которого этот скрипт, при зажатой клавише Shift все действия выполняются последовательно, по очереди. (В обратном случае каждое новое действие отменяет предыдущее) Т.е. в игре Shift так же своеобразный модификатор.
Проблема заключается в том, что если зажать Shift, боковую клавишу(vk06) и покликать правой кнопкой - то будет отправлен правый клик, а не shift + f16. Как добиться что бы скрипт учитывал состояние alt, ctrl, shift и отправлял нужное... сочетние (или учитывал их состояние, не знаю как правильно написать)?
Просто я перебрал уже сотню вариантов, но каждый раз что-то "идет не так", то в момент нажатия райтклика отжимается модификатор, то описанное выше, то еще что-нибудь, за сим вопрос упростил до азов и хочется послушать что скажут знающие люди.

RButton::
if !GetKeyState("vk06","P")
    {
    Send, {RButton down}
    }
else
    {
    Send, {F16 Down}
    }
Keywait, RButton
return

RButton Up::
    Send, {RButton Up}{F16 Up}
return

2

Re: Клавиши-модификаторы не срабатывают для горячей клавиши.

#If GetKeyState("vk06","P")
*RButton::
    Send, {F16 Down}
Keywait, RButton
return

RButton Up::
    Send, {RButton Up}{F16 Up}
return
#If

3

Re: Клавиши-модификаторы не срабатывают для горячей клавиши.

Почти, но не совсем. Да, теперь при удержании любых модификаторов отправляется F16, а не райтклик, но почему-то сами модификаторы (например Shift) не учитываются \ не отправляются.
Попробовал отдельно добавить как комбинацию - не вышло, просто не понимаю что не так.

4

Re: Клавиши-модификаторы не срабатывают для горячей клавиши.

#If GetKeyState("vk06","P")
*RButton::
    Send, {Blind}{F16 Down}
Keywait, RButton
return

RButton Up::
    Send, {Blind}{RButton Up}{F16 Up}
return
#If