如何從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