¿Cómo obtener los nombres para mostrar de varios monitores con la API Win32?

Tengo dos monitores conectados a mi PC con Windows: uno es un monitor normal y el otro es un proyector. Debido a que Windows no asigna constantemente uno u otro como monitor principal (en parte porque no siempre están activados cuando Windows arranca), necesito detectar mediante programación qué monitor es cuál.

El Panel de control muestra los nombres de los monitores como "HP 2159" (el monitor normal) y "PROYECTOR" en la pantalla donde elige cuál es el monitor principal. Esa es la información que quiero obtener en mi programa.

No puedo encontrar la función correcta de API Win32 para esta información. He intentado ambosEnumDisplayDevices yEnumDisplayMontiors. Ambos solo dan "DISPLAY1" y "DISPLAY2" como nombres de dispositivos. ¿Qué debo usar para obtener la información de "HP 2159" y "PROYECTOR" o algo análogo?

ACTUALIZACIÓN: Aquí está el código de Python que estoy usando:

>>> 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)}

Respuestas a la pregunta(1)

Su respuesta a la pregunta