从 c++ windows 应用程序安排监视器

问题描述

我想使用 C++ windows 应用程序在扩展模式下重新排列我的显示器,但我正在努力寻找解决方案。

连接显示器后,我想决定新显示器的位置。 (“位置”是指在主显示器的右侧、左侧、上方或下方)

我发现了一个激活扩展模式的脚本,但它会自动按照上次使用的顺序对显示器进行排序。 我是 C++ 和 Windows 应用程序的新手,这就是为什么我找不到好的解决方案。

这是激活 EXTEND 模式的脚本。

#include <stdio.h>
#include <windows.h>
#include <winuser.h>
#include <iostream>
using namespace std;

int main() {

UINT32 PathArraySize = 0;
UINT32 ModeArraySize = 0;
disPLAYCONfig_PATH_INFO* PathArray;
disPLAYCONfig_MODE_INFO* ModeArray;
disPLAYCONfig_TOPOLOGY_ID CurrentTopology;

GetdisplayConfigBufferSizes(QDC_ALL_PATHS,&PathArraySize,&ModeArraySize);

PathArray = (disPLAYCONfig_PATH_INFO*)malloc(PathArraySize * sizeof(disPLAYCONfig_PATH_INFO));
memset(PathArray,PathArraySize * sizeof(disPLAYCONfig_PATH_INFO));

ModeArray = (disPLAYCONfig_MODE_INFO*)malloc(ModeArraySize * sizeof(disPLAYCONfig_MODE_INFO));
memset(ModeArray,ModeArraySize * sizeof(disPLAYCONfig_MODE_INFO));

LONG ret = QuerydisplayConfig(QDC_DATABASE_CURRENT,PathArray,&ModeArraySize,ModeArray,&CurrentTopology);
// Above CurrentTopology variable will aquire the current display setting (ie Extend,Duplicate etc)

free(PathArray);
free(ModeArray);
SetdisplayConfig(1,NULL,SDC_TOPOLOGY_EXTEND | SDC_APPLY);

}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)