2010-08-13 14 views
5

¿Hay alguna forma de usar WMI/.Net para obtener información del monitor como fabricante, número de serie, tamaño de monitor, etc.?Obtenga información del monitor de PC usando .NET/WMI

El uso de un script también es una opción, o puedo consultar el registro directamente para obtener esta información?

SELECT * FROM Win32_DesktopMonitor realmente no devuelve ninguna información útil para mí en este caso.

Respuesta

5

es posible que desee probar este

http://myitforum.com/cs2/blogs/rzander/archive/2009/03/30/wmi-provider-to-list-the-monitors-serialnr-and-model-name.aspx

También uso WMI Explorer para comprobar alrededor de configuración de WMI

http://www.ks-soft.net/hostmon.eng/wmi/index.htm

Saludos

+1

Edite con un resumen del contenido del enlace para que otras personas puedan disfrutarlo su respuesta si el enlace se rompe. –

+0

@TamirVered ... y el primer enlace se ve roto. – LarsTech

1

Esa consulta de selección debería darle lo que desea. Here es la documentación que contiene los detalles de la consulta.

Posteriormente, se podría hacer algo como esto:

public void GetMonitorDetails() 
    { 
     using(ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_DesktopMonitor") 
     { 
      foreach(ManagementObject currentObj in searcher.Get()) 
      { 
      String name = currentObj("Name").ToString(); 
      String device_id = currentObj("DeviceID").ToString(); 
      // ... 
      } 
     } 
    } 
+0

Esa es la consulta que enumeré en la pregunta que no funciona :)! – mint

+0

@snow - Ver actualización, hágamelo saber si eso ayuda – SwDevMan81

+0

No me da mucha información que estoy buscando (Número de serie, Tamaño del monitor, dice Monitor Manufacturer pero su valor es: que no es lo que estaba buscando. – mint

10

Hey, yo uso esta herramienta para una gran parte de mi trabajo de WMI, especialmente cuando la creación de prototipos y la creación de los POC ....

Microsoft WMI Code Generator

Esta herramienta es ideal para la creación de código de aplicación de consola para la rápida cualquier consulta WMI o la invocación de métodos en C# y VB.NET

try 
     { 
      ManagementObjectSearcher searcher = 
       new ManagementObjectSearcher("root\\CIMV2", 
       "SELECT * FROM Win32_DesktopMonitor"); 

      foreach (ManagementObject queryObj in searcher.Get()) 
      { 
       Console.WriteLine("-----------------------------------"); 
       Console.WriteLine("Win32_DesktopMonitor instance"); 
       Console.WriteLine("-----------------------------------"); 
       Console.WriteLine("Description: {0}", queryObj["Description"]); 
      } 
     } 
     catch (ManagementException e) 
     { 
      MessageBox.Show("An error occurred while querying for WMI data: " + e.Message); 
     } 

el código anterior le conseguirán la marca y modelo del monitor.

0

This post, combinado con la respuesta a continuación acerca de la herramienta de gestión WMI tenía mi respuesta. Aquí está el código que devuelve las resoluciones de su monitor.

try {     
     ManagementObjectSearcher searcher = 
      new ManagementObjectSearcher("root\\WMI", 
      "SELECT * FROM WmiMonitorBasicDisplayParams");  

     foreach (ManagementObject queryObj in searcher.Get()) { 
      Debug.WriteLine("-----------------------------------"); 
      Debug.WriteLine("WmiMonitorBasicDisplayParams instance"); 
      Debug.WriteLine("-----------------------------------"); 
      Debug.WriteLine("Description: {0}", queryObj["SupportedDisplayFeatures"]); 
     } 
    } catch (ManagementException e) { 
     MessageBox.Show("An error occurred while querying for WMI data: " + e.Message); 
    } 

En mi caso, todavía estoy atascado, porque devuelve la resolución "reducida" de cada monitor. Uno de los míos es una pantalla 4K, que se informa como 2560x1440.

Cuestiones relacionadas