У меня есть два монитора, подключенные к моему ПК с ОС Windows - один из них - обычный монитор, а другой - проектор. Поскольку Windows не всегда назначает один или другой в качестве основного монитора (частично потому, что они не всегда работают при загрузке Windows), мне необходимо программно определить, какой монитор является тем, который.Как получить отображаемые имена нескольких мониторов с помощью API Win32?
На панели управления отображаются имена мониторов как «HP 2159» (обычный монитор) и «ПРОЕКТОР» на экране, где вы выбираете, который является основным монитором. Это информация, которую я хочу получить в своей программе.
Я не могу найти подходящую функцию Win32 API для этой информации. Я пробовал и EnumDisplayDevices
, и EnumDisplayMontiors
. Оба просто дают «DISPLAY1» и «DISPLAY2» в качестве имен устройств. Что я должен использовать, чтобы получить информацию «HP 2159» и «PROJECTOR» или что-то подобное?
UPDATE: Вот код Python Я использую:
>>> import win32api
>>> monitors = win32api.EnumDisplayMonitors()
>>> win32api.GetMonitorInfo(monitors[0][0])
{'Device': '\\\\.\\DISPLAY1', 'Work': (0, 0, 1920, 1080), 'Flags': 1, 'Monitor': (0, 0, 1920, 1080)}
>>> win32api.GetMonitorInfo(monitors[1][0])
{'Device': '\\\\.\\DISPLAY2', 'Work': (1920, 0, 3360, 1080), 'Flags': 0, 'Monitor': (1920, 0, 3360, 1080)}
Отправьте свой код. Метод, который я излагаю в своем ответе, всегда работал для меня. –
@ Jim Mischel - см. Код Python (доступ к API Win32 через библиотеку PyWin 'win32api'). Может быть, это что-то не так с реализацией API-интерфейса PyWin? – Ghopper21
Возможно, кто-то еще может вам помочь. Я не программист на Python, и я ничего не знаю о PyWin. –