How to Blank a Display via Joystick Button
It seems to be a simple enough task. Still it took me almost a year of research various combinations of tools and figure out a working match. Since so much work went into it I considered to sell this solution as a service, but I decided to publish it as a blog entry. If you find this solution to be helpfull for you, please consider a donation though.
The issue:
You run a racing simulator with a multiple monitor setup. In my case it’s a triple screen setup and a fourth monitor above for additional information. While this is very helpful in many situations, it distracts while driving and reduces the immersion of the cockpit view on the triple screens. So I was looking for a solution to easily show or hide = blank the info screen above the triple screens. Using button boxes featuring joystick buttons, I thought it would be great to be able to blank/show the info screen/monitor by pressing one of the joystick buttons.
The solution:
To my knowledge there is not one single tool which can do this – blank a given screen by pressing a joystick button. You have to slpit the task into blanking a screen and binding commands/hotkeys to a joystick button. After lots of trial and error including testing massiv tools for home automation (some caused tricky instabilities = iRacing crashed to desktop after some time during race without error messages = lost several important races due to that and lots of time to figure out what’s going on… : ( ), I was able to find two small, but very powerfull tools.
Multiscreen Blank 2
Multiscreen Blank 2 is a Nookkin project by Alexey “Lyosha” Blinnikov. Please find more information on his website. This tool will show your installed monitors (or virtual parts of it), identify them as DISPLAY1, DISPLAY2,.. and let you blank them in multiple ways, or even fade them in or out to a given percentage.
So, first: Download Multiscreen Blank 2.
Extract the files and install it into: C:\MultiscreenBlank2
In order to work it needs to be started and run in the background. There is an option to start it automatically with windows. However with Win 10 this may not work. I start both tools via a batch file.
When started, you should find a small icon on the lower right part of your windows. Start the tool and you should see your monitor setup. Right click the monitor you want to blank and choose information. It should show you the physical device ID. You need to note down the physical device ID of the monitor you want to blank. In my case the upper monitor is listed as \\DISPLAY2.
There are different ways of how to use this tool, but the most easiest one for our purpose is to start the MultiscreenBlank2.exe file together with the necessary command line parameters, which I’ll discuss with the next tool.
Try to blank the monitor via the tool to check if it does work. You can right click it and choose blank monitor. If you can successfully blank a monitor using this tool, then we continue with the second tool in order to be able to use joystick buttons.
JoyToKey
The second tool is an even smaller tool by JTKSOFT. Despite being rather unknown and small, it is a very powerfull tool with incredible features – especially if you run several button boxes and you have plenty of joystick buttons at your hand – you may use them for almost anything now as JoyToKey lets bind hotkeys and commands onto any joystick button of your system.
JoyToKey is published as shareware with unrestricted functionality. However I strongly recommend to buy a one time license key for 7,- USD in order to support the development.
Unzip and install JoyToKey. Like Multiscreen Blank 2 JoyToKey obviously has to be started together with windows and run in the background in order to work.
Start JoyToKey and identify the joystick/button you want to use to blank your monitor. When you press the button, one of the listed buttons will light up. Once you have identified the joystick button, choose that button and click edit button assignment. A new window with lots of possibilities will open.
We are going to use the tab “Special” in order to configure a program to be launched by pressing that joystick button. Under “Launch an external program” you enter the MultiscreenBlank2 folder and file – in my case it’s: C:\MultiscreenBlank2.exe\MultiscreenBlank2.exe
Underneath you use a command line parameter to configure how to blank the monitor. I like to toggle my monitor on and off via one button, therefore I use the toggle parameter like so:
Parameters: /toggle ID \\.\DISPLAY2
Start from: C:\MultiscreenBlank2.
With every push of that joystick button the monitor will blank out, or go on again. You can find more command line parameters for Multiscreenblank2 here. Another interesting one is /toggledimxx, with XX from 0 to 99 which will dim the monitor to a given percentage, which looks really fancy too.
That’s it, now you can dim and blank any given monitor of your system by pressing a given joystick button! Enjoy, and please consider a donation, so we can work on and publish more simracing related content.
derek
maybe mapping a button to a remote control command to power on/off the 4th screen is another solution. 🙂