如何在 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文件已损坏 远程连接无法启动”原因及如何解决?

如何在 Windows 7、8 和 10 上查看已保存的 WiFi 密码

强制关机后virtualbox虚拟机网络连不上

在 Windows XP 上获取现有 USB 设备的 GUID