Joystick Test Script (original) (raw)

Joystick Test Script

This script helps determine the button numbers and other attributes of your joystick. It might also reveal if your joystick is in need of calibration; that is, whether the range of motion of each of its axes is from 0 to 100 percent as it should be. If calibration is needed, use the operating system's control panel or the software that came with your joystick.

Download This Script | Other Sample Scripts | Home


; July 6, 2005: Added auto-detection of joystick number. ; May 8, 2005 : Fixed: JoyAxes is no longer queried as a means of ; detecting whether the joystick is connected. Some joysticks are ; gamepads and don't have even a single axis.

; If you want to unconditionally use a specific joystick number, change ; the following value from 0 to the number of the joystick (1-32). ; A value of 0 causes the joystick number to be auto-detected: JoystickNumber = 0

; END OF CONFIG SECTION. Do not make changes below this point unless ; you wish to alter the basic functionality of the script.

; Auto-detect the joystick number if called for: if JoystickNumber <= 0 { Loop 32 ; Query each joystick number to find out which ones exist. { GetKeyState, JoyName, %A_Index%JoyName if JoyName <> { JoystickNumber = %A_Index% break } } if JoystickNumber <= 0 { MsgBox The system does not appear to have any joysticks. ExitApp } }

#SingleInstance SetFormat, float, 03 ; Omit decimal point from axis position percentages. GetKeyState, joy_buttons, %JoystickNumber%JoyButtons GetKeyState, joy_name, %JoystickNumber%JoyName GetKeyState, joy_info, %JoystickNumber%JoyInfo Loop { buttons_down = Loop, %joy_buttons% { GetKeyState, joy%a_index%, %JoystickNumber%joy%a_index% if joy%a_index% = D buttons_down = %buttons_down%%a_space%%a_index% } GetKeyState, joyx, %JoystickNumber%JoyX axis_info = X%joyx% GetKeyState, joyy, %JoystickNumber%JoyY axis_info = %axis_info%%a_space%%a_space%Y%joyy% IfInString, joy_info, Z { GetKeyState, joyz, %JoystickNumber%JoyZ axis_info = %axis_info%%a_space%%a_space%Z%joyz% } IfInString, joy_info, R { GetKeyState, joyr, %JoystickNumber%JoyR axis_info = %axis_info%%a_space%%a_space%R%joyr% } IfInString, joy_info, U { GetKeyState, joyu, %JoystickNumber%JoyU axis_info = %axis_info%%a_space%%a_space%U%joyu% } IfInString, joy_info, V { GetKeyState, joyv, %JoystickNumber%JoyV axis_info = %axis_info%%a_space%%a_space%V%joyv% } IfInString, joy_info, P { GetKeyState, joyp, %JoystickNumber%JoyPOV axis_info = %axis_info%%a_space%%a_space%POV%joyp% } ToolTip, %joy_name% (#%JoystickNumber%):n%axis_info%nButtons Down: %buttons_down%nn(right-click the tray icon to exit) Sleep, 100 } return