如何在 Windows XP 上获取已连接显示器的类型?
Posted
技术标签:
【中文标题】如何在 Windows XP 上获取已连接显示器的类型?【英文标题】:How to get the type of connected monitor(s) on Windows XP? 【发布时间】:2012-08-10 04:50:13 【问题描述】:我需要知道计算机通过 C++ 程序使用的显示器类型(即平面屏幕、CRT 等)。主要要求是此代码可以在 Windows XP SP3 上运行(因为否则,系统几乎可以在 LCD 屏幕上运行。)
我需要它来实现屏幕调光以节省能源,这仅适用于 CRT,而对平面屏幕有相反的效果。
知道怎么做吗?
【问题讨论】:
Vista 中非常大的变化,支持新的 WMI 类来获取此类信息。由新的 LDDM 驱动程序模型支持。经验?嗯,11 年前的生活要简单得多。 是的,我知道。不幸的是,XP系统比Vista多得多,实际上需要这些知识.... :( 有趣。您正在编写什么样的代码,它可能会对 CRT、LCD 或 LED 产生影响? @AJG85:“谢谢”谁投了反对票。像你这样的问题总是让我感到惊讶。如果您不愿意提供帮助,是否值得您花时间问它?我需要它来实现屏幕调光以节省能源,这仅适用于 CRT,而对平面屏幕有相反的效果。 这可能是另一个 XY 问题。为什么你认为你需要这些信息?询问问题,而不是半成品的解决方案。有太多的角落案例,例如LCD 不是以原始分辨率驱动的。 【参考方案1】:使用 Win32 API 中的 GetMonitorInfo 函数可以获取 Monitor 的大部分信息
BOOL GetMonitorInfo(
__in HMONITOR hMonitor,
__out LPMONITORINFO lpmi
);
这会将输出提供给 MONITORINFO 或 MONITORINFOEX 结构,您可以在其中提取有关当前连接的监视器的信息
【讨论】:
对不起,我怎么从这些结构中知道显示器的类型?以上是关于如何在 Windows XP 上获取已连接显示器的类型?的主要内容,如果未能解决你的问题,请参考以下文章
使用 VB6,如何在 Windows XP 上获取当前用户和域?
使用XP客户端访问远程桌面WEB主机时,提示“此RDP文件已损坏 远程连接无法启动”原因及如何解决?