top of page

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.


HidHideCli.exe
HidHideCli.exe

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-off

Enabling/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:



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 1

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 the Command prompt:

"C:\Program Files\vJoy\x64\vJoyConfig.exe" -r
"C:\Program Files\vJoy\x64\vJoyConfig.exe" Enable off

Enabling 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 RunAs

The -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 RunAs

Joystick 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.exe

There 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.


Playnite startup and shutdown scripts for F/A-18E Super Hornet
Playnite startup and shutdown scripts for F/A-18E Super Hornet

Finally...


Credit and thanks go to:


  • The developers and maintainers of the vJoy, Joystick Gremlin and HidHide projects.


Good hunting!

Comments

Rated 0 out of 5 stars.
No ratings yet

Add a rating

Drop Me a Line, Let Me Know What You Think

Thanks for submitting!

© 2035 by Train of Thoughts. Powered and secured by Wix

bottom of page