다른 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

그만큼물결표 접두사(~)AHK가 XButton2 키 다운/업 이벤트를 차단하는 것을 방지합니다. 이를 통해 주요 이벤트가 통과할 수 있습니다.

~를 제거하면 XButton2본연의 기능을 상실하다. 이를 방지하려면 키를 자체적으로 보내도록 만드세요.

XButton2 & WheelUp::
; do something
return  

XButton2::Send {XButton2}

관련 정보