elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  [Resuelto] Obtener datos de hardware usando clases WMI
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Resuelto] Obtener datos de hardware usando clases WMI  (Leído 8,689 veces)
Crazy.sx


Desconectado Desconectado

Mensajes: 447



Ver Perfil
[Resuelto] Obtener datos de hardware usando clases WMI
« en: 19 Diciembre 2012, 03:40 am »

Estoy intentando usar WMI para sacar los datos de Numero de serie de CPU o ID y de la BIOS, pero no me funciona...
¿Alguie me puede ayudar?

Lo que hice es esto:

Código
  1. Imports System
  2. Imports System.Management
  3. Imports System.Windows.Forms
  4. Public Class Form1
  5.    Private Sub Form1_Load( _
  6.              ByVal sender As System.Object, _
  7.              ByVal e As System.EventArgs) Handles MyBase.Load
  8.  
  9.        ' obtener numero de serie bios
  10.        Dim consultaNumSerieBios As String = "SELECT * FROM Win32_BIOS"
  11.        Dim objNumBios As New ManagementObjectSearcher(consultaNumSerieBios)
  12.        For Each info As ManagementObject In objNumBios.Get()
  13.            infoNumBIOS.Text = info.Properties("SerialNumber").ToString
  14.  
  15.        Next info
  16. End Sub
  17. End Class

¿Cuál es el error que estoy cometiendo?

Bueno, en este código solo intento obtener el número de serie de BIOS pero me faltaría el del CPU también, je.
Gracias.


« Última modificación: 21 Diciembre 2012, 19:47 pm por Lucas.AR » En línea

Destruir K. LOL
Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: Obtener numero de serie de CPU y BIOS
« Respuesta #1 en: 19 Diciembre 2012, 14:18 pm »

¿Qué tipo de error te da?

Te sugiero ejecutar lo siguiente desde ms-dos, y luego comparar con la info obtenida desde tu método.
Código
  1. wmic bios get /format:list

... en mi caso el SerialNumber dice "To Be Filled By O.E.M." :xD

Saludos


En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein
TrashAmbishion


Desconectado Desconectado

Mensajes: 755


Ver Perfil
Re: Obtener numero de serie de CPU y BIOS
« Respuesta #2 en: 19 Diciembre 2012, 17:16 pm »

¿Qué tipo de error te da?

Te sugiero ejecutar lo siguiente desde ms-dos, y luego comparar con la info obtenida desde tu método.
Código
  1. wmic bios get /format:list

... en mi caso el SerialNumber dice "To Be Filled By O.E.M." :xD

Saludos

Jajajajajajajaja  ;-) ;-)

Típico

Es muy facil aprieta donde dice Autodestruir, bad joke, jumm
En línea

Crazy.sx


Desconectado Desconectado

Mensajes: 447



Ver Perfil
Re: Obtener numero de serie de CPU y BIOS
« Respuesta #3 en: 19 Diciembre 2012, 21:33 pm »

Encontré la solución, y no solamente pude sacar la información del BIOS y del CPU sino de todo el hardware. Al final, es muy fácil usar WMI y hacer las consultas como se lo haría con SQL.

El código que revisé está en C# pero más abajo les dejo en VB.NET (disculpen, no me di cuenta de copiar la fuente y se me acabó el tiempo del ciber). Lo edité un poco, pero funciona perfectamente, no es muy complicado entenderlo  :):

Código
  1.    Private Sub InfoHardware(ByVal clave As String)
  2.        Dim searcher As New ManagementObjectSearcher("select * from " + clave)
  3.        ListView1.Items.Clear()
  4.        Dim listv As ListViewGroup
  5.        Try
  6.            For Each objeto As ManagementObject In searcher.[Get]()
  7.                Try
  8.                    listv = ListView1.Groups.Add(objeto("Name").ToString(), objeto("Name").ToString())
  9.                Catch
  10.  
  11.  
  12.                    listv = ListView1.Groups.Add(objeto("Name").ToString(), objeto("Name").ToString())
  13.                End Try
  14.                If objeto.Properties.Count <= 0 Then
  15.                    MessageBox.Show("No hay información al respecto", "Atención")
  16.                    Return
  17.                End If
  18.  
  19.                For Each PropiedadObj As PropertyData In objeto.Properties
  20.                    Dim listViewItem1 As New ListViewItem(listv)
  21.                    listViewItem1.Text = PropiedadObj.Name
  22.  
  23.                    If PropiedadObj.Value IsNot Nothing AndAlso PropiedadObj.Value.ToString() <> "" Then
  24.                        listViewItem1.SubItems.Add(PropiedadObj.Value.ToString())
  25.                        ListView1.Items.Add(listViewItem1)
  26.                    Else
  27.  
  28.                    End If
  29.                Next
  30.            Next
  31.    End Sub

Solo es cuestión de enviar como parámetro cualquiera de las clases Win32 y listo. Aquí hay un listado completo de las clases Win32 con sus especifiaciones (en inglés). http://msdn.microsoft.com/en-us/library/aa394084(v=vs.85).aspx

Saludos.

¿Qué tipo de error te da?

Te sugiero ejecutar lo siguiente desde ms-dos, y luego comparar con la info obtenida desde tu método.
Código
  1. wmic bios get /format:list

... en mi caso el SerialNumber dice "To Be Filled By O.E.M." :xD

Saludos
Gracias Novlucker. Saludos.
« Última modificación: 19 Diciembre 2012, 21:35 pm por Lucas.AR » En línea

Destruir K. LOL
spiritdead

Desconectado Desconectado

Mensajes: 296


Ver Perfil
Re: Obtener numero de serie de CPU y BIOS
« Respuesta #4 en: 20 Diciembre 2012, 02:11 am »

xD hasta q tedistes cuenta :)
En línea

Facilitador De Tareas - Task Simplifier (FDT)
Crazy.sx


Desconectado Desconectado

Mensajes: 447



Ver Perfil
Re: Obtener numero de serie de CPU y BIOS
« Respuesta #5 en: 20 Diciembre 2012, 05:02 am »

xD hasta q tedistes cuenta :)
En línea

Destruir K. LOL
spiritdead

Desconectado Desconectado

Mensajes: 296


Ver Perfil
Re: [Resuelto] Obtener datos de hardware usando clases WMI
« Respuesta #6 en: 24 Diciembre 2012, 21:18 pm »

sorry si no te dije, :P prefiero q aprendan a investigar, a veces algunos piden el job entero y uno queda >.>

:) prefiero aclarar dudas puntuales o errores puntuales :)

saludos
En línea

Facilitador De Tareas - Task Simplifier (FDT)
llFabianfll

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Re: [Resuelto] Obtener datos de hardware usando clases WMI
« Respuesta #7 en: 8 Enero 2014, 04:42 am »

Hola Amigo muchas gracias por el aporte esta muy bueno voy a revisar bn el codigo xq necesito crear una aplicacion que me facilite la recolección de los datos de unos equipos y poder almacenarlos en una BD SQL Server
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines