Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: Crazy.sx en 19 Diciembre 2012, 03:40 am



Título: [Resuelto] Obtener datos de hardware usando clases WMI
Publicado por: Crazy.sx 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.


Título: Re: Obtener numero de serie de CPU y BIOS
Publicado por: Novlucker 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


Título: Re: Obtener numero de serie de CPU y BIOS
Publicado por: TrashAmbishion 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


Título: Re: Obtener numero de serie de CPU y BIOS
Publicado por: Crazy.sx 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.


Título: Re: Obtener numero de serie de CPU y BIOS
Publicado por: spiritdead en 20 Diciembre 2012, 02:11 am
xD hasta q tedistes cuenta :)


Título: Re: Obtener numero de serie de CPU y BIOS
Publicado por: Crazy.sx en 20 Diciembre 2012, 05:02 am
xD hasta q tedistes cuenta :)
(http://3.bp.blogspot.com/-xYC5_UOlXz8/Tto9aHciaLI/AAAAAAAAAFY/CKvtgc4QW54/s760/Fuck_Yea.png)


Título: Re: [Resuelto] Obtener datos de hardware usando clases WMI
Publicado por: spiritdead 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


Título: Re: [Resuelto] Obtener datos de hardware usando clases WMI
Publicado por: llFabianfll 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