我试图检索显示器ID的显示在Windows显示属性(#1,2 …等),但我似乎无法find一种方法。 我已经尝试使用EnumDisplayMonitors以及EnumDisplayDevices 。 他们都返回类似“\。\ DISPLAY1”。 但是,这个数字并不总是与Windows所显示的数字相匹配,尤其是当使用2个显卡驱动3个或更多显示器时。 有没有一个API调用我缺less检索这些信息,或者有办法从registry或其他地方得到它? 谢谢!
我已经尝试了这些方法:
Win32: EnumDisplayMonitors,EnumDisplayDevices:这些返回监视器都不是活动的,都没有返回正确的ID。
WMI: “从Win32_DesktopMonitor中select*”不返回所有监视器,并且没有ID。
registry:我在各个地方find了显示器,没有find我要找的信息。
任何帮助深表感谢。 🙂
更新:这些是我正在寻找的监视器号码:
根据目的,您可能需要考虑基于驱动程序的解决方案。 我知道nVidia有一些不错的库,让你访问控制面板的大部分功能。
你有两个电话给EnumDisplayDevices吗? 尝试像这样:
while (EnumDisplayDevices(0, dev, &dd, 0)) { ... while (EnumDisplayDevices(dd.DeviceName, devMon, &ddMon, 0)) { ... } }
只是猜测,但它看起来像Windows在Windows显示属性中显示iDevNum+1
。