Как изменить ориентацию экрана каждого экрана отдельно от C ++ или C #? Наличие конфигурации с двумя экранами в режиме зеркала.
Графическая карта Intel установлена на машине. Я попробовал функцию EnumDisplaySettings и структуру DeviceMode. Однако он работает только в расширенном режиме. Если я пытаюсь изменить ориентацию с помощью этой функции в зеркальном режиме, на обоих экранах устанавливается одинаковая ориентация. Может быть, есть способ изменить эти настройки с помощью Intel Driver SDK или любых других функций Windows 7?
ОБНОВЛЕНИЕ 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);
Вы можете попробовать использовать CCD API. Эти функции позволяют вам манипулировать VidPN топология для вашей текущей сессии. Хотя они не самые простые функции для вызова.
Редактировать:
Я не вижу ничего плохого в вашем коде, кроме, может быть, SDC_ALLOW_CHANGES
флаг. Я попробовал ваш код в моей системе, которая имеет карту Nvidia. Это зависит от того, какую цель я вращаю. Если я поверну 2-ю из двух целей, она игнорирует изменение. В панели управления Nvidia я вижу, что 2-й монитор вращается, но его настройки неактивны. Это говорит о том, что драйвер Nvidia не поддерживает то, что вы хотите сделать. Если я вращаю первую цель, это заставляет обе цели вращаться. Я также пытался изменить масштабирование цели на DISPLAYCONFIG_SCALING_STRETCHED
, Это также не имело никакого значения. SetDisplayConfig возвращает 0. По крайней мере, Windows, похоже, довольна этим изменением.
Вы пытались делать то, что вы хотите с помощью утилиты дисплея Intel? Если вы не можете сделать это с помощью инструмента Intel, то, возможно, драйвер Intel не поддерживает его. Вы, вероятно, хотите спросить кого-то из Intel о том, поддерживается ли он.
Других решений пока нет …