By Willie Willis,2014-09-30 05:45
101 views 0

     Joystick Test Script 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%




     if JoystickNumber <= 0


     MsgBox The system does not appear to have any joysticks.





    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



     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%`n`n(right-click the tray icon to exit)

     Sleep, 100



Report this document

For any questions or suggestions please email