Leer Información del Sistema con WMI

 

En este articulo se le muestra cómo utilizar WMI para obtener alguna información básica del sistema. En VB .NET demuestra sólo un pequeño subconjunto de las características dentro de WMI. Usted debe incluir una referencia a system.management al utilizarlo. A continuación se muestra un ejemplo de cómo utilizar la clase.

Para el ejemplo crearemos un proyecto como aparece en la imagen y en el evento load de la forma colocamos el siguiente codigo.

Dim objWMI As New clsWMI()
With objWMI
Label1.Text = "Computer Name = " & .ComputerName
Label2.Text = "Computer Manufacturer = " & .Manufacturer
Label3.Text = "Computer Model = " & .Model
Label4.Text = "OS Name = " & .OsName
Label5.Text = "OS Version = " & .OSVersion
Label6.Text = "System Type = " & .SystemType
Label7.Text = "Total Physical Memory = " & ((.TotalPhysicalMemory / 1024) / 1024) / 1024 & " GB"
Label8.Text = "Windows Directory = " & .WindowsDirectory
End With

Crearemos una clase llamada clsWMI y agregamos el espacio de nombres System.Management.

Ahora colocaremos el siguiente codigo en la clase, donde definimos unas propiedades y creamos la funcion para obtener la informacion del sistema.

Imports System.Management

Public Class clsWMI
Private objOS As ManagementObjectSearcher
Private objCS As ManagementObjectSearcher
Private objMgmt As ManagementObject
Private m_strComputerName As String
Private m_strManufacturer As String
Private m_StrModel As String
Private m_strOSName As String
Private m_strOSVersion As String
Private m_strSystemType As String
Private m_strTPM As String
Private m_strWindowsDir As String
Public ReadOnly Property ComputerName()
Get
ComputerName = m_strComputerName
End Get

End Property
Public ReadOnly Property Manufacturer()
Get
Manufacturer = m_strManufacturer
End Get

End Property
Public ReadOnly Property Model()
Get
Model = m_StrModel
End Get

End Property
Public ReadOnly Property OsName()
Get
OsName = m_strOSName
End Get

End Property

Public ReadOnly Property OSVersion()
Get
OSVersion = m_strOSVersion
End Get

End Property
Public ReadOnly Property SystemType()
Get
SystemType = m_strSystemType
End Get

End Property
Public ReadOnly Property TotalPhysicalMemory()
Get
TotalPhysicalMemory = m_strTPM
End Get

End Property

Public ReadOnly Property WindowsDirectory()
Get
WindowsDirectory = m_strWindowsDir
End Get

End Property

Public Sub New()

objOS = New ManagementObjectSearcher("SELECT * FROM Win32_OperatingSystem")
objCS = New ManagementObjectSearcher("SELECT * FROM Win32_ComputerSystem")
For Each objMgmt In objOS.Get
m_strOSName = objMgmt("name").ToString()
m_strOSVersion = objMgmt("version").ToString()
m_strComputerName = objMgmt("csname").ToString()
m_strWindowsDir = objMgmt("windowsdirectory").ToString()
Next

For Each objMgmt In objCS.Get
m_strManufacturer = objMgmt("manufacturer").ToString()
m_StrModel = objMgmt("model").ToString()
m_strSystemType = objMgmt("systemtype").ToString
m_strTPM = objMgmt("totalphysicalmemory").ToString()
Next
End Sub
End Class

 Al final quedaria mas o menos asi:


One Response

  1. Miguel Palma dice:

    y como puedo enviar esta informacion a una base de datos, por ejemplo en un txt en un servidor?

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

*

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

© VB-MUNDO – Visual Basic y mucho más
CyberChimps