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:
Imports System
Imports System.Management
Imports System.Windows.Forms
Public Class Form1
Private Sub Form1_Load( _
ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
' obtener numero de serie bios
Dim consultaNumSerieBios As String = "SELECT * FROM Win32_BIOS"
Dim objNumBios As New ManagementObjectSearcher(consultaNumSerieBios)
For Each info As ManagementObject In objNumBios.Get()
infoNumBIOS.Text = info.Properties("SerialNumber").ToString
Next info
End Sub
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.
¿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.
wmic bios get /format:list
... en mi caso el SerialNumber dice "To Be Filled By O.E.M." :xD
Saludos
Cita de: 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.
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
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 :):
Private Sub InfoHardware(ByVal clave As String)
Dim searcher As New ManagementObjectSearcher("select * from " + clave)
ListView1.Items.Clear()
Dim listv As ListViewGroup
Try
For Each objeto As ManagementObject In searcher.[Get]()
Try
listv = ListView1.Groups.Add(objeto("Name").ToString(), objeto("Name").ToString())
Catch
listv = ListView1.Groups.Add(objeto("Name").ToString(), objeto("Name").ToString())
End Try
If objeto.Properties.Count <= 0 Then
MessageBox.Show("No hay información al respecto", "Atención")
Return
End If
For Each PropiedadObj As PropertyData In objeto.Properties
Dim listViewItem1 As New ListViewItem(listv)
listViewItem1.Text = PropiedadObj.Name
If PropiedadObj.Value IsNot Nothing AndAlso PropiedadObj.Value.ToString() <> "" Then
listViewItem1.SubItems.Add(PropiedadObj.Value.ToString())
ListView1.Items.Add(listViewItem1)
Else
End If
Next
Next
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.
Cita de: 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.
wmic bios get /format:list
... en mi caso el SerialNumber dice "To Be Filled By O.E.M." :xD
Saludos
Gracias Novlucker. Saludos.
xD hasta q tedistes cuenta :)
Cita de: spiritdead en 20 Diciembre 2012, 02:11 AM
xD hasta q tedistes cuenta :)
(http://3.bp.blogspot.com/-xYC5_UOlXz8/Tto9aHciaLI/AAAAAAAAAFY/CKvtgc4QW54/s760/Fuck_Yea.png)
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
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