Как программно получить номера мониторов из диалогового окна «Разрешение экрана» в win7?

Когда вы нажимаете кнопку «Определить» в диалоговом окне «Разрешение экрана», Windows показывает вам большие белые номера мониторов на каждом мониторе. Их было легко найти программно вместе с координатами монитора в Windows XP (с помощью EnumDisplayDevices ), но в Windows 7 это не работает. Как я могу это сделать?

  1. EnumDisplayDevices и GetMonitorInfo больше не являются надежными для этой цели в Windows 7.
  2. Я попробовал GetMonitorInfo, а затем извлек номер монитора из MONITORINFOEX.szDevice (IE. \.\Display2 )безуспешно. Другой парень сделал то же самое два года назад и заявил, что в getMonitorInfo есть ошибка. Эта ошибка была отмечена Microsoft как исправленная без каких-либо комментариев, но ее все еще можно воспроизвести на машине с Win7, на которой установлены последние обновления. (Кстати, кто-нибудь может сказать мне -, может быть, эта ошибка отсутствует на win8?)
  3. Я попробовал QueryDisplayConfig из нового CCD API, но не нашел нужной информации.

Кто-нибудь знает дорогу?

10
задан boqapt 5 July 2012 в 17:50
поделиться