Controllers and retro sims part 10: vJoy/Joystick Gremlin/HidHide command line options
- 2 hours ago
- 4 min read
A guide to configuration, enabling and disabling the vJoy, Joystick Gremlin and HidHide utilities with the Windows Command Prompt and PowerShell command lines. The command line options are very useful to configure an environment for a HOTAS profile to be used for a particular sim.
Finding details of command line options for these utilities is not easy, so this guide acts as a useful reference.
Note: This guide assumes HidHid and vJoy are installed in the default location.
HidHide
The HidHide client, (HidHideClient.exe) has a analogous Command Line Interface (CLI) client, (HidHideCli.exe). In most scenarios it is probably easier to configure the HidHide device firewall with the HidHide client and use the HidHide CLI to enable and disable the firewall via script.
When running the HidHide CLI from the Command Prompt, this opens the HidHide CLI console (with a $ prompt) as shown in the screenshot.

The following options are supported:
Option | Description |
|---|---|
--app-clean | Remove absent registered applications |
--app-list | Lists the registered applications |
--app-reg | "<fully qualified path>" Grants ability to see hidden devices |
--app-unreg | "<fully qualified path>" Revokes ability to see hidden devices |
--cancel | Exit without saving configuration changes |
--cloak-off | Deactivates hiding of HID devices |
--cloak-on | Activates hiding of HID devices |
--cloak-state | Reports the current cloaking state |
--cloak-toggle | Toggles between active and inactive |
--dev-all | Lists all HID devices |
--dev-gaming | Lists all HID devices used for gaming |
--dev-hide | "<device instance path>" Hide the device specified |
--dev-list | Lists the hidden devices |
--dev-unhide | "<device instance path>" Unhide the device specified |
--help | Summarizes the commands supported |
--inv-off | Turn off inverse application list |
--inv-on | Turn on inverse application list |
--inv-state | Display the inverse application list state |
--version | Displays the configuration client version |
Examples
Enabling/disabling HidHide with the Command Prompt:
"C:\Program Files\Nefarius Software Solutions\HidHide\x64\HidHideCLI.exe" --cloak-on
"C:\Program Files\Nefarius Software Solutions\HidHide\x64\HidHideCLI.exe" --cloak-offEnabling/disabling HidHide with PowerShell:
Start-Process -FilePath "C:\Program Files\Nefarius Software Solutions\HidHide\x64\HidHideCLI.exe" -ArgumentList '--cloak-on'
Start-Process -FilePath "C:\Program Files\Nefarius Software Solutions\HidHide\x64\HidHideCLI.exe" -ArgumentList '--cloak-off'vJoy
The vJoy client (vJoyConf.exe) also has a CLI client (vJoyConfig.exe). The vJoy CLI client is very useful as it allows the vJoy driver to be enabled or disabled, allows the vJoy configuration to be reset to a default state and allows a vJoy virtual controller to be configured.
This means a script can be used to enable the driver and create a virtual controller for a specific sim. Once the sim is quit another script can be used to reset the vJoy config to a default state and disable the vJoy driver.
Fortunately there is also documentation courtesy of the Internet Archive Wayback Machine. Documentation consists of:
vJoyConfig usage.
Important note: vJoyConfig must be run as Administrator to make the required changes. To use in a Command Prompt, the Command Prompt must be run as Administrator. If there are other commands run within the same script using the same Command Prompt they will all have Administrator privileges. You should ensure this does not pose a security risk for your machine. PowerShell can run individual vJoyConfig commands as Administrator so poses less of a risk.
Examples
Enabling vJoy and creating a controller with the Command Prompt:
"C:\Program Files\vJoy\x64\vJoyConfig.exe" Enable on
"C:\Program Files\vJoy\x64\vJoyConfig.exe" 1 -f -a X Y Z Rz -b 8 -p 1This creates (or replaces) the first virtual controller with x, y, z and z-rotation axes, 8 buttons and 1 POV hat.
Resetting all configs to default (with the -r argument) and disabling vJoy with the Command prompt:
"C:\Program Files\vJoy\x64\vJoyConfig.exe" -r
"C:\Program Files\vJoy\x64\vJoyConfig.exe" Enable offEnabling vJoy and creating a controller with PowerShell:
Start-Process "C:\Program Files\vJoy\x64\vJoyConfig.exe" -ArgumentList "Enable on" -Verb RunAs
Start-Process "C:\Program Files\vJoy\x64\vJoyConfig.exe" -ArgumentList "1 -f -a X Y Z Rz -b 8 -p 1" -Verb RunAsThe -Verb RunAs argument allows individual commands to have elevated Administrator privileges. This creates (or replaces) the first virtual controller with x, y, z and z-rotation axes, 8 buttons and 1 POV hat.
Resetting all configs to default (with the -r argument) and disabling vJoy with PowerShell:
Start-Process "C:\Program Files\vJoy\x64\vJoyConfig.exe" -ArgumentList "-r" -Verb RunAs
Start-Process "C:\Program Files\vJoy\x64\vJoyConfig.exe" -ArgumentList "Enable off" -Verb RunAsJoystick Gremlin
The Joystick Gremlin client (joystick_gremlin.exe) supports a limited number of important command line arguments useful when writing scripts to run a particular profile. The following options are supported:
Option | Description |
|---|---|
--enable | Enable Joystick Gremlin upon launch |
--profile | Path to the profile to load on startup |
--start-minimized | Start Joystick Gremlin minimized |
Examples
Starting Joystick Gremlin loading a profile and enabling it with the Command Prompt:
"X:\<path to>\joystick_gremlin.exe" --start-minimized --enable --profile <profile path>Closing Joystick Gremlin with the Command Prompt:
taskkill /F /IM joystick_gremlin.exeThere is no Joystick Gremlin command line option to close it, so taskkill is used instead.
Starting Joystick Gremlin loading a profile and enabling it with PowerShell:
Start-Process -FilePath "X:\<path to>\joystick_gremlin.exe" -ArgumentList '--start-minimized --enable --profile <profile path>'Closing Joystick Gremlin with PowerShell:
Stop-Process -Name "joystick_gremlin"There is no Joystick Gremlin command line option to close it, so the PowerShell command Stop-Process is used instead.
A complete example
The Digital Integration sim, F/A-18E Super Hornet requires a very specific set of axes to be present on a controller and only those axes, with additional axes causing severe control problems. Using vJoy/Joystick Gremlin and HidHide to set up each utility specifically for this sim and then to disable it all afterwards would become a chore.
Instead we can use the command line options to create a script to build a suitable virtual controller, load and enable the Joystick Gremlin profile that uses it and ensure the HidHide device firewall is in place.
Once we quit the sim, another script closes Joystick Gremlin, disables vJoy and removes the HidHide device firewall.
The following screenshot shows the Playnite game library manager configured to run PowerShell scripts to perform the above actions. This has been tested and found to work. The Start-Sleep commands add pauses allowing the configuration actions to complete.

Finally...
Credit and thanks go to:
The developers and maintainers of the vJoy, Joystick Gremlin and HidHide projects.
Good hunting!


Comments