问题
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 :)
回答1:
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.
来源:https://stackoverflow.com/questions/12547329/execute-automatic-change-connected-displays-in-windows-8