我很好奇WMI是如何运作的。特别是,我目前正在使用WMI通过“Select * from Win32_DesktopMonitor”查询物理监视器,因为它一直在多个平台上给我正确的结果,因为我想知道物理监视器的数量,而不是像函数返回的虚拟监视器GetSystemMetrics和EnumDisplays。我还研究了SetupAPI,它像设备管理器一样检查注册表,但是在Vista之前版本的Windows中可能会错误地返回幻像监视器。
我试图跟踪API调用并使用wbemtest.exe生成的procmon.exe和我自己的可执行文件进行查询来查看事件,但是找不到太多。
对WMI内部工作的任何见解,更深入的API调用跟踪,或者可靠的计算监视器的方法都将受到赞赏。
次要说明:使用C ++
答案 0 :(得分:2)
还有值得检查您感兴趣的类属性的MappingStrings限定符(如果存在)。对于Win32_DesktopMonitor,例如:
DEVICEID:
Win32API | Windows GDI | HMONITOR
InstallDate:
MIF.DMTF |的ComponentID | 001.5
MonitorManufacturer:
Win32Registry
MonitorType:
Win32Registry
PixelsPerXLogicalInch:
Win32API |设备上下文函数| GetDeviceCaps
答案 1 :(得分:1)
它与设备驱动程序对话,没有人更清楚可用的硬件是什么。您可以在此Microsoft article中详细了解。