演示文稿显示模式是您在使用 Windows + p 快捷方式时看到的模式:
是否存在允许在这些显示模式之间切换的API调用?
我想以编程方式在显示器和HDMI电视之间切换(并同时做一堆其他事情,因此 Windows + p 没有用),但我是打砖墙。
答案 0 :(得分:11)
如果EnumDisplaySettingsEx和ChangeDisplaySettingsEx函数不适合您,您也可以使用它:
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
}
这将根据所需的配置使用不同的参数调用DisplaySwitcher。你可以这样打电话:
SetDisplayMode(DisplayMode.Extend);
答案 1 :(得分:2)
您可以使用EnumDisplaySettingsEx和ChangeDisplaySettingsEx获取和更改显示设置:
ChangeDisplaySettingsEx函数更改了设置 将指定的显示设备指定为指定的图形模式。
答案 2 :(得分:2)
您可以使用SetDisplayConfig()设置桌面显示模式 例如。
foldl
您可以使用QueryDisplayConfig()检索当前的显示模式。 例如
SetDisplayConfig(0, NULL, 0, NULL, SDC_TOPOLOGY_EXTERNAL | SDC_APPLY);
(此次通话的相关来源here)
这适用于C ++。 C#需要DLL导入。