2012-07-05 9 views
9

Cuando presiona el botón Identificar en el cuadro de diálogo Resolución de pantalla, Windows muestra números grandes de monitores blancos en cada monitor. Fue fácil encontrarlos programáticamente junto con las coordenadas del monitor en Windows XP (con EnumDisplayDevices) pero en Windows 7 está roto. ¿Cómo puedo hacer eso?¿Cómo puedo obtener los números de los monitores desde el diálogo de Resolución de pantalla en win7 programáticamente?

  1. EnumDisplayDevices y GetMonitorInfo son not reliable anymore para tal fin en Windows 7.
  2. Probé GetMonitorInfo y luego extraer número de monitor de MONITORINFOEX.szDevice MARCAS (\. \ Display2) sin éxito. Otro chico did that too hace dos años y afirmó que getMonitorInfo tiene un error. This bug fue marcado como arreglado por Microsoft sin ningún comentario, pero aún se puede reproducir en una máquina win7 con las últimas actualizaciones. (Por cierto, ¿alguien me puede decir que tal vez este error está ausente en win8?)
  3. Probé QueryDisplayConfig desde la nueva API CCD pero no encontré la información necesaria.

¿Alguien sabe el camino?

+0

posible duplicado de [? ¿Cómo puedo recuperar seguimiento de la información] (http://stackoverflow.com/questions/2600255/how-can-i-retrieve-monitor-information) – Deanna

Respuesta

1

Nunca he querido saber en mis aplicaciones de Windows el número de monitores, pero puede llamar al GetSystemMetrics function con el valor del parámetro SM_CMONITORS para obtener la cantidad de monitores en un escritorio.

que llamo en mis aplicaciones de Windows funcionan GetSystemMetrics principalmente con el parámetro valora SM_CXVIRTUALSCREEN, SM_CYVIRTUALSCREEN, SM_XVIRTUALSCREEN y SM_YVIRTUALSCREEN para evitar la apertura de las ventanas de aplicación total o parcialmente fuera del área de visualización. Sin embargo, una ventana de aplicación podría no ser visible si el usuario extendió el área de visualización en múltiples monitores, pero no todos están activados.

La función SystemParametersInfo function con valor SPI_GETWORKAREA para uiAction parámetro es también muy útil saber dónde una ventana de aplicación puede ser posicionado y lo grande que puede ser en anchura y altura en la pantalla principal sin ser en parte oculta por otras ventanas (barras) siendo siempre en la cima.

Consulte también GetMonitorInfo function si necesita más información de los monitores en su aplicación de Windows.

0

Para las versiones de Windows compatibles con WDDM, que Windows 7 lo hace, simplemente puede usar DXGI, que es parte de DirectX. DXGI le permite enumerar muy fácilmente los adaptadores de pantalla existentes, las salidas de pantalla disponibles por adaptador y los modos de pantalla admitidos por salida de pantalla. Al enumerar hay una gran cantidad de datos adicionales que puede leer, como identificadores, identificadores y nombres de dispositivos. Todo esto puede usarse fácilmente para recuperar las áreas de trabajo también. El orden en que se enumeran los adaptadores y las salidas lo define el sistema y coincide con el orden de la pantalla de configuración.

Consulte aquí para obtener más información: MSDN DXGI Overview

Cuestiones relacionadas