Jump to content

Control your programs by joystick or joypad


Recommended Posts

Hello AutoIt-Fans. The main reason why I wrote this script was to simulate the entire keyboard with just the joypad. Mostly I need it when I play retro games on an emulator like CCS64 or VICE emulator, PCSXR, ... So maybe someone can use it too.

In the configuration file macroJoy.cfg you can define your macros. A macro has two parts, a button sequence-line and the commands-line. If all buttons of a sequence-line (one by one or simultaneously, depending on pushType) are pressed, the functions in the commands-line will be invoked. The following functions are currently available: sendkey, run, focus, killproc, cursor, sleep. If you like you can add some custom functions in includes/functions.au3. Below you will find a configuration example and a brief description.
The program resides in the system tray. Use the menu item Check JoyData to test your macros or see the joystick button codes. 
Project files can be downloaded from Github macroJoy Source code.zip



;sequenceNN:        process;pushType;joynum;time;joyid,code;joyid,code,...
    ;process:           0=ignore process / processID or process name e.g.: notepad.exe
    ;pushType:          1=simultaneous, 2=one by one
    ;JoyPort:           1-15
    ;time(pushType 1):  [idle-repeat time in ms] or 0=off / (pushType 2): [timeout in ms] or 0=no timeout
    ;joyid:             1-8
    ;code:              integer value

;commandNN:             func,para1,para2,...;func,para1,para2,...
        ;sleep          pause execution                       para1: time in ms
        ;sendKey        simulate keystrokes                   para1: sequence of keys / para2(opt): 0=default 1=send raw  (see autoit docs "send" for details)
        ;focusA         focus to the specified window name    para1: window name
        ;killpidfile    kill process from pid-file            para1: text file with a process id
        ;focusB         focus to the specified window name    para1: window name (Works better, but may be unavailable in subsequent versions of Windows.)
        ;killproc       kill process by name or process id    para1: process name or process id
        ;run            run a program                         para1: program name / para2(opt): show_flag / para3(opt): opt_flag  (see autoit docs "run" for details)
        ;cursor         hide/set or toggle mouse cursor       para1: 0=hide 1=show 2=toggle



;XINPUT: <Start>
command03=sendKey,{ESC down},0;sleep,100;sendKey,{ESC up},0

;XINPUT: <Square>
command04=sendKey,{z down},0;sleep,100;sendKey,{z up},0

;XINPUT: <R1>+<D-Up>
command05=sendKey,{F1 down},0;sleep,300;sendKey,{F1 up},0

;XINPUT: <R1>+<D-Right>
command06=sendKey,{F3 down},0;sleep,300;sendKey,{F3 up},0

;XINPUT: <L3> Toggle Mouse Cursor On/Off

;XINPUT: <R3> Run Notepad and open desktop.ini, killproc after 3 seconds
command08=run,notepad.exe "%USERPROFILE%\Desktop\desktop.ini",c:\;sleep,3000;killproc,notepad.exe



Edited by ergo
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Create New...