Запретить отправку определенной клавиши, если я нажимаю 2 или более других клавиш

Запретить отправку определенной клавиши, если я нажимаю 2 или более других клавиш

У меня есть эта мышь с дополнительными кнопками «вперед» и «назад» сбоку, и вот скрипт AHK, который я с ней использую. Его основное назначение:

  1. Если средняя кнопка мыши прокручивается вверх, удерживая XButton2 (кнопка «вперед») и правую кнопку (щелчок правой кнопкой мыши), отправляется Alt+ 6.
  2. Если прокрутить среднюю кнопку мыши вверх, удерживая кнопку XButton2 мыши, громкость системы увеличится на 2%.

Проблема в том, что одновременно с этим он также запускает действие по умолчанию для мыши XButton2 (Вперед), поэтому я хотел предотвратить отправку «Вперед» при удерживании клавиш, указанных выше.

~XButton2 & WheelUp::
GetKeyState, RButtonState, RButton,     ;Gets the mouses Rbutton state
If RButtonState = D                     ;Checks if Rbutton is pressed down

if (x_1 > 1919) ;if mouse cursor's X(Horizontal) position is greater than 1919px then:
Send !6         ;Sends ALT+6
else Send !4    ;Sends ALT+4

SetNumlockState, On


If RButtonState = U  ;Checks if Rbutton is NOT pressed down
SoundSet, + 2        ;if Rbutton is not pressed down scrolling up while holding XButton2 increases volume
return

решение1

Theпрефикс тильда (~)не позволяет AHK блокировать события нажатия/отпускания клавиши XButton2. Позволяет событию нажатия клавиши проходить.

Если убрать ~, XButton2теряет свою первоначальную функцию. Чтобы этого избежать, заставьте ключ отправлять сам себя:

XButton2 & WheelUp::
; do something
return  

XButton2::Send {XButton2}

Связанный контент