JoyX JoyY에서 SendInput으로

JoyX JoyY에서 SendInput으로

내 조이스틱/게임패드에는 표준 10개 버튼과 X 및 Y축 버튼이 있습니다. 아래 스크립트는 작동하지만 원하는 방식은 아닙니다.

Right::
GetKeyState, state, JoyX
If state > 75 ;JoyX is pressed to right
SendInput testmessage

이 스크립트가 수행할 작업은 JoyX가 75보다 큰 동안 키보드의 오른쪽 화살표 키를 누를 때 "testmessage"를 인쇄하는 것입니다. 내가 원하는 것은 JoyX가 75보다 크면 오른쪽 키를 누르지 않고도 SendInput "testmessage"가 되는 것입니다. 내 키보드의 화살표 키.

JoyX를 단축키 또는 X100 Y050으로 사용해 보았지만 오류 메시지가 나타납니다. 현재 단축키 JoyX는 키보드 레이아웃에 없기 때문에 활성화되지 않습니다.

감사해요!

답변1

조이스틱에는 응답할 "버튼" 이벤트가 없으므로 폴링해야 하는 상태가 있습니다. 다음은 사용됨조이스틱을 키보드 또는 마우스에 다시 매핑특히 영감을 얻기 위해조이스틱 축 또는 POV Hat이 키 입력 또는 마우스 클릭을 전송하도록 만들기부분. 타이머를 사용하여 조이스틱의 상태를 주기적으로 폴링하고 상태가 75보다 크면 입력을 보냅니다.

#Persistent  ; Keep this script running until the user explicitly exits it.
SetTimer, WatchAxis, 5
return

WatchAxis:
GetKeyState, state, JoyX
If state > 75 ;JoyX is pressed to right
    SendInput testmessage
return

제대로 작동하려면 타이머의 폴링 빈도(현재 5)를 가지고 놀아야 하며 KeyToHoldDown상태 추적 스타일을 구현해야 할 수도 있습니다. 그렇지 않으면 텍스트를 반복적으로 보낼 수 있습니다.

관련 정보