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.
¿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." Saludos
Gracias Novlucker. Saludos.