У меня есть эта мышь с дополнительными кнопками «вперед» и «назад» сбоку, и вот скрипт AHK, который я с ней использую. Его основное назначение:
- Если средняя кнопка мыши прокручивается вверх, удерживая XButton2 (кнопка «вперед») и правую кнопку (щелчок правой кнопкой мыши), отправляется Alt+ 6.
- Если прокрутить среднюю кнопку мыши вверх, удерживая кнопку 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}