Cómo obtener los datos básicos de todos los slots de memoria RAM del equipo (bancos de memoria), así como la memoria RAM total (Capacity, Speed, SerialNumber, PartNumber, Manufacturer, DeviceLocator, DataWidth, ConfiguredClockSpeed, BankLabel, FormFactor, Tag, etc.). Usaremos WMI (Windows Management Instrumentation) y Visual Studio .Net con C# (C Sharp). Incluimos descarga del código fuente completo y gratuito de la aplicación de ejemplo. Para el desarrollo de esta aplicación se usa .NET 6 y Visual Studio .Net Community 2022.

Crear clase InvSlotRAM.cs en Visual Studio .Net CSharp

En primer lugar, para almacenar la información de cada impresora del equipo, crearemos una clase llamada InvImpresora.cs. Para ello, pulsaremos con el botón derecho del ratón sobre la solución y elegiremos «Agregar» – «Clase…»:

Crear clase InvSlotRAM.cs en Visual Studio .Net CSharp

Introduciremos el nombre de la clase (en nuestro caso InvSlotRAM.cs) y pulsaremos «Aceptar»:

Añadiremos el siguiente código fuente C# a la clase creada:

Crear clase Inventario.cs en Visual Studio .Net CSharp

De la misma forma, crearemos la clase en la que añadiremos todos los métodos de nuestra aplicación C#. Entre ellos, el método para obtener los datos de cada slot de RAM del equipo, usando la clase InvSlotRAM.cs anterior para almacenar una lista de clases (lista de slots de RAM). De esta forma obtendremos todos los datos de todos los slots de RAM (bancos de memoria RAM) del equipo (en una lista de miembros de la clase InvSlotRAM.cs).

El código fuente de la clase Inventario.cs será:

Si algún método da error, como ManagementObjectSearcher, podremos instalarlo directamente desde el código, pasando el ratón por encima del error y pulsando en la bombilla. Mostrará un menú emergente donde indicará «Instalar paquete «System.Management» – «Buscar e instalar la última versión»:

Crear clase Inventario.cs en Visual Studio .Net CSharp

Lo que hará Visual Studio .Net será instalar el paquete necesario por nosotros, agregará el using:

Y agregará la referencia a este paquete (System.Management) para nuestro proyecto:

Crear clase Inventario.cs en Visual Studio .Net CSharp

Todo esto, evidentemente, podemos hacerlo nosotros mismos de forma manual, pero ya hemos comprobado que de forma automática se instala correctamente y es más rápido.

Formulario para probar las clases anteriores y obtener los slots de RAM y sus datos con WMI y C#

Crearemos un formulario con un Button y un TextBox (con propiedad Multiline = True). Añadiremos también un Label, que será donde mostremos la cantidad de RAM total del equipo:

Formulario para probar las clases anteriores y obtener los slots de RAM y sus datos con WMI y C#

En el evento Click del Button añadiremos el siguiente código para obtener los bancos de memoria RAM del equipo y la suma de la memoria RAM total (suma de la capacidad de cada slot/banco) y sus datos:

Aplicación ProyectoA – Obtener Slots RAM WMI en funcionamiento

Probaremos la aplicación que obtiene los bancos de memoria RAM del equipo y sus datos. Para ello compilaremos el código fuente anterior pulsando F5. Una vez ejecutada la aplicación, pulsaremos en el botón «Obtener slots RAM». Devolverá en el cuadro de texto todos los bancos de memoria RAM (slots) del equipo y sus datos:

Aplicación ProyectoA - Obtener Slots RAM WMI en funcionamiento

Por ejemplo:

Descarga del código fuente en C# de Visual Studio .Net Community 2022 de la aplicación completa

Para descargar el código fuente completo de este ejemplo WMI con C#, en Visual Studio .Net Community 2022, con .NET 6.0, accede al siguiente enlace (es completamente gratuito):