¿Hay algún evento o notificación que pueda recibir o enganchar cada vez que se conecta o desenchufa un monitor LCD externo desde una computadora portátil con Windows 7?Detectar la pantalla externa conectada o eliminada en Windows 7
La computadora portátil detecta esto y cambia mi pantalla a la pantalla externa y viceversa con ciertos tipos de cambio de tamaño o reposicionamiento, pero ¿está expuesto el sistema operativo para que las aplicaciones puedan proporcionar un controlador, adjuntar un script, etc.?
Si no es así, ¿hay alguna configuración de registro o API que pueda sondear de vez en cuando?
(prefiero programación C + API Win32)
ACTUALIZACIÓN
la respuesta de Mike a continuación, WM_DEVICECHANGE
me llevó a RegisterDeviceNotification()
, pero estoy luchando para ponerlo en práctica hasta ahora ...
ACTUALIZACIÓN 2
Esta pregunta se ha realizado con diferentes palabras un par de veces, pero no plenamente recibido ninguna respuesta en mi opinión:
- How to detect hot plugging of monitor in a win32 application?
- Getting an event on monitor hotplug for windows
Me pregunto si usted fue capaz de avanzar en su búsqueda? – c00000fd
@ user843732: En realidad, poco después de este hilo, viajé por todo el mundo durante un año y medio sin mi pantalla externa, pero recientemente he vuelto y este es nuevamente un proyecto en el que deseo trabajar. Llegué tan lejos como para recibir un mensaje cuando conecto/desconecto el monitor, pero no estoy seguro de cómo comprobar si el monitor lo generó o averiguar cuál fue exactamente el cambio ... – hippietrail
Gracias. Estoy en el mismo barco: puedo recibir una notificación, pero luego la documentación no admite la información recibida. Lo que creo que terminaré haciendo es contar periódicamente el número de monitores que usan 'EnumDisplayMonitors (NULL, NULL ,,);' y si el conteo cambia, entonces esa es su notificación. (Lástima que no se puede llamar a EnumDisplayMonitors desde un servicio. Parece que se debe llamar desde una sesión de usuario interactiva. 'GetSystemMetrics (SM_CMONITORS);' tampoco funciona desde un servicio ...) – c00000fd