Hola a todos:
Pues llevo un tiempo metido en un proyecto en mi empresa y entre muchas otras cosas me vi en la necesidad de extraer datos sobre los equipos de la empresa. Y si, ya sé que para eso existen muchos programas por ahí, pero necesitaba agregarle estas características al proyecto en el que estoy trabajando. Y bueno de ahí la pregunta de ¿Cómo obtengo las características del hardware de una pc? Y di con las clases WMI(en español, Instrumental de administración de Windows). Resulta que el WMI es un repositorio de información que les hace la vida más fácil a programadores como nosotros que necesitamos encontrar información del sistema (Hardware, Software, Sistema Operativo) y es algo bastante viejo ya, desde Windows 2000 (ahora fue que lo vi J). Pero bueno veamos cómo funciona esto.
Primero debemos agregar la referencia a System.Management para poder usar este repositorio de clases, donde cada una tiene diferentes propiedades. Así que si queremos obtener por ejemplo los discos duros que tiene la pc llamaríamos a la clase que recopila esta información y a las características que nos interesen. Así
ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive"); int count = 1; foreach (var hdd in searcher.Get()) { try { if (hdd["InterfaceType"].ToString() != "USB") { Variable += count + "- Modelo: " + hdd["Model"] + " "; count++; } } catch { // ignored } }
En este ejemplo llamo a la clase “Win32_DiskDrive” de WMI mediante un objeto buscador de tipo
“ManagementObjectSearcher” y le paso la consulta. Luego con un ciclo foreach recorro la consulta que el devuelve y mediante un contador voy enumerando los discos. Vean que solo capturo los discos que no estén conectados por usb y que las propiedades que estoy llamando son [«InterfaceType»] y [«Model»].
Muy fácil ¿verdad? No tanto. Porque existen muchas clases y cada una con sus propiedades y ahí es donde se complica, si no sabemos cuál nos va a dar lo que estamos buscando.
Por suerte para eso existe un generador de código para esto. Incluso te lo lleva a c# o vb.
Pueden descargarlo aquí y también en codeproject.
Espero que les sea de ayuda. Cualquier duda pueden preguntar en los comentarios.
Saludos.
Comentarios recientes