代码之家  ›  专栏  ›  技术社区  ›  Apocalisp

如何检索监视器信息?

  •  13
  • Apocalisp  · 技术社区  · 14 年前

    我正在尝试检索Windows显示属性中显示的监视器ID(#1,2。。。等等),但我似乎找不到办法。我试过用 以及 枚举显示设备 . 它们都返回“\1”。但是,这个数字并不总是与Windows显示的数字匹配,尤其是当2个显卡用于驱动3个或更多个监视器时。我是否缺少了一个API调用来检索这些信息,或者有一种方法可以从注册表或其他地方获取它?谢谢!


    Win32:
    WMI: “select*from Win32_DesktopMonitor”没有返回所有监视器,并且没有ID。
    注册表:

    任何帮助都是非常感谢的。:)

    更新: alt text

    3 回复  |  直到 7 年前
        1
  •  2
  •   Phillaf    14 年前

    根据目的,您可能需要寻找基于驱动程序的解决方案。我知道nVidia有一些不错的lib,可以让你访问控制面板上的大部分功能。

        2
  •  1
  •   VitalyVal    14 年前

    你有两次调用EnumDisplayDevices吗?尝试类似于:

    while (EnumDisplayDevices(0, dev, &dd, 0))
    {
    ...
      while (EnumDisplayDevices(dd.DeviceName, devMon, &ddMon, 0))
      {
       ...
      }
    }
    
        3
  •  0
  •   Kirill V. Lyadvinsky    14 年前

    只是一个猜测,但看起来像是Windows显示 iDevNum+1