以编程方式更改"演示文稿显示模式"

Lee*_*ore 6 c# winapi multiple-monitors

演示显示模式是那些您在使用时会看到Windows+ p快捷键:

  1. 仅限计算机
  2. 重复
  3. 延伸
  4. 仅限投影仪

是否存在允许在这些显示模式之间切换的API调用?

我想以编程方式在显示器和HDMI电视之间切换(并同时做一堆其他事情,因此Windows+ p没有用),但我正在打砖墙.

dsf*_*sho 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
        }
Run Code Online (Sandbox Code Playgroud)

这将根据所需的配置调用DisplaySwitcher不同的参数.你可以这样称呼:

   SetDisplayMode(DisplayMode.Extend);
Run Code Online (Sandbox Code Playgroud)