我如何获得每个显示器的尺寸(分辨率)?

我如何获得每个显示器的尺寸(分辨率)?,第1张

概述我如何获得每个显示器尺寸分辨率)?

我需要帮助如何检索我的屏幕的分辨率,如下图所示。

我发现这个文档 ,这真的很有帮助。 以下是我尝试的代码,基于这些文档:

int numberOfScreens = GetSystemMetrics(SM_CMONITORS); int wIDth = GetSystemMetrics(SM_CXSCREEN); int height = GetSystemMetrics(SM_CYSCREEN); std::cout << "Number of monitors: " << numberOfScreens << "n"; // returns 3 std::cout << "WIDth:" << wIDth << "n"; std::cout << "Height:" << height << "n";

但是,它只能识别和提供有关主监视器的信息。 我如何获得有关其他显示器的信息?

编写虚拟的第二个显示器驱动程序:从哪里开始?

在多个监视器上设置控制台窗口信息

有没有办法在多GPU环境中以编程方式select渲染GPU? (视窗)

检测哪个监视器显示窗口

“以扩展我的windows桌面到这个监视器”编程

windows驱动程序使用哪种编程接口来切换活动显示

在特定的屏幕上启动进程

Tkinter在Ubuntu 14.02报告宽度作为两个显示器的总和

在监视器连接/断开事件上运行脚本

双显示器设置下的SDL假全屏模式

#include <windows.h> BOol CALLBACK MonitorEnumProc(HMONITOR hMonitor,HDC hdcMonitor,LPRECT lprcMonitor,LParaM DWData) { MONITORINFO info; info.cbSize = sizeof(info); if (GetMonitorInfo(hMonitor,&info)) { std::cout << "Monitor x: "<< std::abs(info.rcMonitor.left - info.rcMonitor.right) <<" y: " << std::abs(info.rcMonitor.top - info.rcMonitor.bottom) << std::endl; } return TRUE; // continue enumerating } int main() { EnumdisplayMonitors(NulL,NulL,MonitorEnumProc,0); return 0; }

要枚举连接到计算机的所有设备,请调用EnumdisplayDevices函数并枚举设备。 然后调用EnumdisplayMonitors 。 这将返回每个监视器( HMONITOR )的句柄,该句柄与GetMonitorInfo一起GetMonitorInfo 。

如果 *** 作系统是windows XP SP2或更高版本(它在SP1下失败),也可以使用WMI的Win32_DesktopMonitor类 。

您也可以尝试使用注册表中的EDID值来获取大小,但在很多情况下,EDID值无效。

注册表路径

HKEY_LOCAL_MACHINE 系统 CurrentControlSet 枚举 disPLAY

总结

以上是内存溢出为你收集整理的我如何获得每个显示器的尺寸(分辨率)?全部内容,希望文章能够帮你解决我如何获得每个显示器的尺寸(分辨率)?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1279430.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-09
下一篇2022-06-09

发表评论

登录后才能评论

评论列表(0条)

    保存