APLICACIÓN DE CONSOLA PARA ANALIZAR Y ALMACENAR LAS CARACTERÍSTICAS DE TU PC EN C#

in #stem-espanol6 years ago (edited)

Saludos querida comunidad de Steemit, esta vez les traigo un post sobre un programa muy sencillo pero que seguramente más de una vez hemos utilizado, se trata de un programa que nos ayuda a saber las especificaciones de nuestro computador. Este programa fue hecho por mí mismo usando el lenguaje de programación C#.

A continuación, explicaré brevemente cómo funciona el programa, el programa consiste en ayudarnos a llevar el control de nuestras computadoras, es decir, a tener de manera organizada cada computador que tenemos y saber cuáles son sus características para poder tener idea de qué tipo de función puede cumplir de manera óptima. Todas estas características son guardadas en un archivo xml el cual cumple la función de la base de datos del programa. El uso de este tipo de archivos es debido a que como el programa es portable es mucho más fácil poder guardar los datos en un archivo XML, ya que la base de datos tendría que instalarse en cada computador en el cual haremos el análisis, este tipo de archivos nos permite tener de una manera ordenada los datos de cada computador de forma similar a una base de datos.

Como mencioné anteriormente este programa lo realicé usando el lenguaje de programación C# el cual es un lenguaje con el que no he trabajado y era totalmente nuevo para mí, pero a pesar de eso fue un buen reto para ir aprendiendo el lenguaje.

Figura 1. Creación del XML .Fuente Propia

Como se puede apreciar en la Figura 1 allí es donde se declara el documento XML, su inicialización y la creación de los nodos padres (BDD, Usuarios y Equipos) y luego los agrega en el XML. Esto creará el XML cada vez que lo corra, para evitar esto utilicé un try catch el cual explicaré en el siguiente post.

Figura 2. Creación del XML .Fuente Propia

Como se puede apreciar en la Figura 2 allí es donde se carga el documento XML (Línea 32) y la creación de los nodos padres (Usuarios y Equipos) en donde se empezarán a guardar los registros de las computadoras (Línea 33). Luego de esto se crea un bucle do while en donde se le pide al usuario que ingrese su ID, el propósito de usar este bucle es que se siga repitiendo mientras que el usuario ingrese dígitos que no sean numéricos (Desde la línea 34 hasta la 40). Una vez terminado el bucle se procede a recorrer el archivo XML con el propósito de verificar si el ID del usuario ya existe en la base de datos (Archivo XML), en caso de que no exista este procede a crear el nodo del usuario y a pedir que ingrese su nombre y lo guarda en el archivo XML.

Este es el principio del programa como se explicó en la imagen el primer paso que da el programa es crear el XML y cargarlo con sus nodos padres, una vez que esto sucede se procede a solicitar el ID del usuario y si el ID no se encuentra en la base de datos se procede a guardar el usuario con su nombre y su ID pero si el ID ya existe en la base de datos este continua mostrando un menu en cual tendremos 3 opciones, la primera es analizar nuestro pc, la segunda es eliminar cualquier pc que tengamos y la ultima es para guardar todo y salir.

Para poder analizar las caractetisticas de nuestro pc por medio del lenguaje C# utilizo Windows Management Instrumentation que es una iniciativa de Windows mediante la cual podemos obtener información del hardware y proveerla a los desarrolladores. WMI está organizado por namespaces. El más común a utilizar es “\root\cimv2” el cual podemos verlo como la “Base de datos” a la que nos vamos a conectar y luego de esto tenemos que realizar queries (consultas) sobre el namespace, y como cualquier base de datos nos regresa una colección de resultados sobre la que podemos iterar.

Para llamar a WMI desde C# debemos utilizar Visual Studio y agregar una referencia a System.Management dando clic derecho sobre el proyecto -> Agregar Referencia  y en la pestaña .NET buscar System.Management.

Figura 3. Creación del Menú y conexión a WMI.Fuente Propia

En el case 1 del switch podemos notar que lo primero que realiza al entrar es crear el equipo en el XML (Línea 50) y el primer atributo que guarda en ese nodo es el ID del usuario al cual pertenece ese equipo el cual fue introducido previamente (Línea 51 y 52). Seguidamente en la Línea 83 se refiere al namespace \root\cimv2, luego se crea un objeto para consultar una tabla del namespace (Línea 84) para después ejecutar el query (Línea 85). Para obtener los resultados de los queries se realiza una iteración mediante un foreach el cual va recorriendo la tabla y devuelve cada uno de los elementos de la tabla, que en este caso es el del disco duro, el cual nos devuelve la capacidad total de cada disco duro y también el espacio libre que cada disco duro del computador posee.

Este proceso lo realiza para cada consulta que queramos realizar, ya sea para la memoria RAM, el disco duro, sistema operativo, etc. A continuación, presentaré cuales fueron las características que quise integrar en este programa.

  1. Disco Duro: Win32_LogicalDisk.
  2. Memoria RAM: Win32_PhysicalMemory.
  3. Sistema Operativo: Win32_OperatingSystem.
  4. Procesador: Win32_Processor.
  5. Serial de la Placa Base: Win32_BaseBoard.

A la hora de guardar cada computador lo guardo con una llave primaria la cual es el serial de la placa base y así poder identificar cada computador de manera única, en caso de que el equipo ya esté en la base de datos, pero se le hayan aplicado cambios, ya sea que se le haya aumentado la memoria RAM, se le haya cambiado el sistema operativo, o cualquier otra cosa, este será eliminado cada vez que se analice y se guardara nuevamente en la base de datos con sus nuevas características. También se puede usar el Win32_Bios para guardar el serial de la bios en caso de que de falla el serial de la placa base. A continuación, se le presenta el método eliminar:

Figura 4. Método Eliminar.Fuente Propia

Este método recibe el serial de la pc y el nodo padre de los equipos el cual es referencia, luego mediante un foreach se recorre el archivo Xml y se verifica mediante cada iteración que el serial pasado por referencia se encuentre en este, una vez se encuentre este es borrado.

Aquí les dejo un video en donde podrán apreciar el comportamiento del programa el cual fue hecho como una aplicación de consola:

Video Propio

Como podrán notar en este video muestro el comportamiento del programa, que pasa si quiero eliminar computadores si no tengo ninguno registrado, también se muestra que las características del computador sean correctas, como se guardan los datos en el archivo XML, etc.

Espero que les haya gustado esta publicación, este programa fue hecho como aplicación de consola, pero más adelante mostraré como hacer este mismo programa mediante formularios.

Referencias Bibliográficas:

  1. Libro: C# 5.0 in a Nutshell. O' REILLY.

Hasta la próxima

Sort:  

Hi @merlinrosales96!

Your post was upvoted by utopian.io in cooperation with steemstem - supporting knowledge, innovation and technological advancement on the Steem Blockchain.

Contribute to Open Source with utopian.io

Learn how to contribute on our website and join the new open source economy.

Want to chat? Join the Utopian Community on Discord https://discord.gg/h52nFrV

Muy buena descripción y el vídeo detallo el procedimiento de manera sencilla. Feliz día amigo.

Coin Marketplace

STEEM 0.30
TRX 0.12
JST 0.034
BTC 64455.55
ETH 3147.84
USDT 1.00
SBD 3.94