我想以编程方式在以下两种模式之间切换:
我已经尝试使用SetDisplayConfig
函数,但失败了。使用以下命令,可以将主监视器克隆到所有附加的显示器:
SetDisplayConfig(0, null, 0, null,
SetDisplayConfigFlags.SDC_TOPOLOGY_CLONE | SetDisplayConfigFlags.SDC_APPLY);
不幸的是,我需要复制辅助监视器!
我发现了另一种质疑How to make clone or extended mode的方法。但我无法将不同显示的源设置为相同的引用。
发布于 2017-09-11 13:13:54
Windows 7:工作解决方案:
要在两个(或更多)连接的设备之间克隆/复制桌面,只需:
- PathInfoArray[2].sourceInfo.id = PathInfoArray[1].sourceInfo.id
- PathInfoArray[2].sourceInfo.modeInfoIdx = PathInfoArray[1].sourceInfo.modeInfoIdx
- PathInfoArray[3].sourceInfo.id = PathInfoArray[1].sourceInfo.id
- PathInfoArray[3].sourceInfo.modeInfoIdx = PathInfoArray[1].sourceInfo.modeInfoIdx
要在两个或多个显示器之间扩展显示(如果是克隆显示的话),则要复杂一些:
- PathInfoArray[2].sourceInfo.id = AddItem.sourceInfo.id;
- PathInfoArray[2].sourceInfo.modeInfoIdx = AddItem.sourceInfo.modeInfoIdx;
这只适用于Win7。
在Windows 10 RS1上,SetDisplayConfig()将在无效参数的情况下失败。我不太清楚为什么,但我意识到在Windows10下,“ModeInfo.adapterId”(低部分和高部分)在每次重新启动时都会发生变化。当您通过“Windows ->显示”复制/扩展时,适配器将发生更改。这就是为什么我相信在Windows 10下,您也必须调整PathModeInfoArray和SourceModeInfoArray的适配器。
现在的问题是:我不知道如何获得正确的适配器id。如果有人在windows 10下找到解决这个问题的答案/提示,我将非常感激。(我需要一个windows 10的工作解决方案:-( )
发布于 2017-08-21 09:09:44
首先更改主显示器,然后更改SetDisplayConfig()如何?
ChangeDisplaySettingsEx与CDS_SET_PRIMARY https://msdn.microsoft.com/en-us/library/windows/desktop/dd183413(v=vs.85).aspx
然后你打电话给SetDisplayConfig克隆。
发布于 2018-10-03 12:23:49
关于在win 10上复制多个监视器的整个故事与将目标监视器的x和y位置设置为源监视器中的位置有关。因此,首先:
https://stackoverflow.com/questions/45793131
复制相似问题