The presentation display modes are those you see when using the Windows+p shortcut:
Do any API calls exist which allow one to switch between these display modes?
I want to programmatically switch between monitor and HDMI TV (and do a bunch of other things simultaneously, hence Windows+p not being useful), but I'm hitting a brick wall.
In case the EnumDisplaySettingsEx and ChangeDisplaySettingsEx functions do not work for you, you can also use this:
private void SetDisplayMode(DisplayMode mode)
{
var proc = new Process();
proc.StartInfo.FileName = "DisplaySwitch.exe";
switch (mode)
{
case DisplayMode.External:
proc.StartInfo.Arguments = "/external";
break;
case DisplayMode.Internal:
proc.StartInfo.Arguments = "/internal";
break;
case DisplayMode.Extend:
proc.StartInfo.Arguments = "/extend";
break;
case DisplayMode.Duplicate:
proc.StartInfo.Arguments = "/clone";
break;
}
proc.Start();
}
enum DisplayMode
{
Internal,
External,
Extend,
Duplicate
}
This will call the DisplaySwitcher with different arguments based on the required configuration. You can thus call:
SetDisplayMode(DisplayMode.Extend);