Tips and Tweaks – Simple Screen Switching Using DisplaySwitch
In my current Home Theater setup, I find myself switching between a direct DVI connection from my HTPC to the Pioneer Elite PRO-141FD 60″ Plasma Monitor and an HDMI connection through the Pioneer Elite SC-07 AV Receiver depending on whether I’m watching TV or a Blu-ray disc (BD) movie. I do this because when listening to music or watching sports, I use the S/PDIF Zone 1 & 2 outputs on the SC-07 to run audio to the other amplifiers in the house (I pulled Optical S/PDIF along side Cat 6 when wiring the house). Unfortunately, the SC-07 does not down-convert HDMI audio to S/PDIF or analog–I don’t think many receivers do–even for non copy-protected streams. But, obviously, I want to use HDMI for BD bit streamed playback and usually do not care about the BD soundtrack in the rest of the house. (BTW: I don’t recommend using an HTPC for your primary BD player, but that subject deserves it’s own separate posting)
My HTPC houses a Zotac GT-430 card with separate DVI, HDMI and DP outputs, and the PRO-141FD has plenty of inputs so I don’t need to do any physical switching; but when I do switch from one display to the other, I want the Media Center display to switch with me. I would just configure Windows to run in Clone mode, but any copy-protected cable channel like ESPN while in clone mode will not be allowed due to HDCP violation.
After spending a half hour trying to grok some complicated autohotkey scripts, I stumbled upon a posting explaining the options to DisplaySwitch.exe, which ships with Windows 7. In a nutshell:
DisplaySwitch.exe /internal – Switch to Primary only
DisplaySwitch.exe /external – Switch to Secondary only
DisplaySwitch.exe /clone – Clone desktop on both screens (Not HDCP compliant!)
DisplaySwitch.exe /extend – Extend desktop to both screens
The next thing I’d like to do is send a message to the receiver and display to switch to the appropriate inputs. This could be done with a remote macro, but it would be so much cleaner to send a control message via the network (worse case serial port)…perhaps a project for another day.