ControlMyJoystick accepts triggering actions by microphone (voice commands), 3Dconnexion controller (button presses) and 3rd Party App Triggers. When a valid trigger is detected, a macro executes one or more script commands. The script commands can send keyboard keystrokes, mouse position, mouse button presses and joystick button presses to a game. You can also send a command via network UDP to a 3rd party app.
Controller axis data is adjusted by user-defined curves, then passed through to the virtual joystick driver, where the data is sent to the game as joystick positional data.
Scripted keyboard keystrokes, mouse position and button press data are send directly to the game via the Windows API call SendInput.
Scripted joystick button presses are sent to the virtual joystick driver, where the presses are sent to the game as joystick button press data.