Evitar enviar una tecla específica si presiono otras 2 o más teclas

Evitar enviar una tecla específica si presiono otras 2 o más teclas

Tengo este mouse con botones adicionales de avance y retroceso en el costado y aquí hay un script AHK que uso con él. Su propósito principal es:

  1. Si el botón central del mouse se desplaza hacia arriba mientras se mantiene presionado XButton2 (botón de avance) y el botón derecho (clic derecho), envía Alt+ 6.
  2. Si el botón central del mouse se desplaza hacia arriba mientras se mantiene presionado el botón XButton2, aumenta el volumen del sistema en un 2%.

El problema es que también activa la acción predeterminada del botón X del mouse (Adelante) al mismo tiempo, por lo que quería evitar que enviara "Adelante" cuando mantenía presionadas las teclas indicadas anteriormente.

~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

Respuesta1

Elprefijo de tilde (~)evita que AHK bloquee los eventos de tecla arriba/abajo del XButton2. Permite que pase el evento clave.

Si eliminas ~, XButton2pierde su función original. Para evitar esto, haga que la clave se envíe sola:

XButton2 & WheelUp::
; do something
return  

XButton2::Send {XButton2}

información relacionada