如何从C++或C#中分别更改每个屏幕的屏幕方向?在镜像模式下具有双屏幕显示配置。 Intel显卡已安装在机器上。我尝试了EnumDisplaySettings函数和DeviceMode结构。但是,它只能在扩展模式下工作。如果我在镜像模式下尝试通过此功能改变方向,则两个屏幕都设置为相同的方向。也许有方法通过英特尔驱动程序SDK或任何其他本地Windows 7功能来更改此设置?在镜像模式下以编程方式更改屏幕方向Windows 7
UPDATE 1:
这里是我与CCD API试过的代码。它仍然旋转两个显示器=(
UINT32 PathArraySize = 0;
UINT32 ModeArraySize = 0;
DISPLAYCONFIG_PATH_INFO* PathArray;
DISPLAYCONFIG_MODE_INFO* ModeArray;
DISPLAYCONFIG_TOPOLOGY_ID CurrentTopology;
SetDisplayConfig(0,NULL,0,NULL,SDC_TOPOLOGY_CLONE|SDC_APPLY); //set to clone mode
GetDisplayConfigBufferSizes(QDC_ALL_PATHS, &PathArraySize, &ModeArraySize);
PathArray = (DISPLAYCONFIG_PATH_INFO*)malloc(PathArraySize * sizeof(DISPLAYCONFIG_PATH_INFO));
memset(PathArray, 0, PathArraySize * sizeof(DISPLAYCONFIG_PATH_INFO));
ModeArray = (DISPLAYCONFIG_MODE_INFO*)malloc(ModeArraySize * sizeof(DISPLAYCONFIG_MODE_INFO));
memset(ModeArray, 0, ModeArraySize * sizeof(DISPLAYCONFIG_MODE_INFO));
LONG ret = QueryDisplayConfig(QDC_DATABASE_CURRENT,&PathArraySize, PathArray, &ModeArraySize, ModeArray, &CurrentTopology);
PathArray++;
PathArray->targetInfo.rotation = DISPLAYCONFIG_ROTATION_ROTATE180; //set Second display rotated 180
PathArray--;
SetDisplayConfig(PathArraySize,PathArray,ModeArraySize,ModeArray, SDC_APPLY | SDC_SAVE_TO_DATABASE | SDC_ALLOW_CHANGES | SDC_USE_SUPPLIED_DISPLAY_CONFIG); //apply rotation
free(PathArray);
free(ModeArray);
镜像模式的要点是让一个屏幕精确显示另一个屏幕上的内容。为什么你会希望他们在不同的方向在这种模式? – RobH 2013-03-01 17:27:07
有一种装置,屏幕安装旋转180度以改善某个位置的视角。如果连接了其他显示器,其中一个屏幕始终以镜像模式翻转。在扩展模式下,可以单独旋转它们。 – Yaroslav 2013-03-01 22:08:41
对!我忘记了这个用例。 – RobH 2013-03-04 17:13:58