微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决从 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 举报,一经查实,本站将立刻删除。