Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Execute automatic change connected displays in Windows 8

Short version

How do I automate changing multiple display settings? NVIDIA, 3x monitors (2x DVI and 1x HDMI), GPU only supports 2 active monitors.


Long version

So I have a NVIDIA GeForce GTX 560 Ti which can run two displays simultaneously. It has two DVI connections and one HDMI. I often swap from using my two desktop monitors and connect only one of the desktop monitors plus my TV using HDMI.

I would like to automate the change back and forward using a batch script or other program instead of using the windows control panel (Control Panel\All Control Panel Items\Display\Screen Resolution) or the NVIDIA Control Panel.

I found some documentation on using "rundll32.exe, NvCpl.dll, dtcfg ...." etc. This did not work at all. Nothing happens for any parameters I use from the NVIDIA PDF documentation. Does anyone have an example that works? I have tried this on Windows 7 as well.

I have tried to use WMI to see if the monitor is there, but it only shows the two active monitors. It does not show the third inactive monitor.

I have tried EnumDisplayDevices from User32.dll, but this only returns the two active monitors.

How can I get this working?

I would like to get this working in C#, so I can use it with changing audio device as well :)

like image 820
Bjarte Avatar asked Sep 22 '12 20:09

Bjarte


People also ask

How do you switch screens on Windows 8?

Press the Windows Key + P , which will bring up the display settings. Because you can't see anything on your monitor use the left or right arrow key and press enter (Repeat this step). Each time you use the Windows Key + P combination, press the left or right arrow key once and hit enter.

Can Windows 8.1 run 3 monitors?

Windows 8.1 allows you to divide higher resolution monitors into up to three panes, mixing and matching Metro apps and Desktop screens in various combinations, as shown below. However, only one instance of each Metro app can run at a time, regardless of which screen it is on.


1 Answers

Although this is may not meet your requirements, I did run in to this problem when using my laptop to power several monitors, and I ended up using the Display Profiles feature in UltraMon. I never scripted it or used their SDK, but I do know that they do support automation and SDK access.

Note: I am in no way affiliated with UltraMon, I just used their product and found it to meet my needs.

like image 55
Mitch Avatar answered Sep 30 '22 17:09

Mitch