如何在Windows XP上获取连接的显示器类型?

3
我需要知道计算机使用的监视器类型,即平面屏幕、CRT等,以便从C++程序中获取。主要要求是该代码在Windows XP SP3上运行(否则几乎可以确定该系统运行在液晶屏幕上)。
我需要实现屏幕变暗以节省能源,这仅适用于CRT,并对平板显示器产生相反的效果。
有什么好的方法吗?

Vista有非常大的变化,支持新的WMI类来获取这种信息。这得益于新的LDDM驱动程序模型。而XP呢?11年前的生活要简单得多。 - Hans Passant
是的,我知道。不幸的是,需要那种知识的系统比Vista更多,...... :( - ahmd0
有趣。你写的是什么样的代码,以至于使用CRT、LCD或LED会有任何区别? - AJG85
@ahmd0 我没有投票,只是出于好奇才发表了评论。 - AJG85
2
这可能是另一个 XY 问题。你为什么认为你需要这个信息?询问问题,而不是关于你未完成的解决方案。有太多的边角情况,例如 LCD 没有以本地分辨率驱动。 - MSalters
显示剩余2条评论
1个回答

0

您可以通过使用Win32 API中的GetMonitorInfo函数来获取显示器信息的大部分内容

BOOL GetMonitorInfo(
  __in   HMONITOR hMonitor,
  __out  LPMONITORINFO lpmi
);

这将会输出到MONITORINFO或者MONITORINFOEX结构体中,您可以从中提取关于当前连接的显示器的信息。


对不起,但是我怎么从这些结构中知道显示器的类型呢? - ahmd0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接