La Web del Programador: Comunidad de Programadores
 
    Pregunta:  179 - NUMERO DE SERIE DE LA BIOS
Autor:  Florencio
Mi pregunta es la siguiente, vereis necesito hacer una función preferiblemente en Visual Basic, que me devuelva en unas string o una variable de tipo numerico, el nº de la bios del equipo en el que se está ejecutando, repito el de la bios, no el HDD ni el del sistema. Muchas gracias de antemano

  Respuesta:  Juan Manuel Ferrer
La solución la tienes en el WMI de microsoft. Esta utilidad viene incluida en Windows XP, pero para windows Me/9x, tienes que instalarla. La puedes conseguir en el sitio de microsoft.

Con WMi (Windows Management Intrumentation) le sacas todos los parametros a los dispositivos hardware.

Si deseas ver algunos ejemplos de como hacerlo, visita la pagina de Planet Source Code (www.pscode.com). y has la busqueda correspondiente.

El ejemplo que te da Luis Diez, No funciona en Windows XP, a menos que "Abras" los puertos correspondientes. De otro forma la aplicación se abortará.

Si quieres abrir los puertos, echale un ojo al sitio de SoftCircuits (www.softcircuits.com). Ahí podrás encontrar utilidades Freeware para que puedas abrir los puertos de la pc bajo Windows XP.

  Respuesta:  Luis Diez
Esta funcion nos devuelve la fecha de fabricacion.

Option Explicit

Private Declare Sub GetMem1 Lib "msvbvm50.dll" (ByVal _ MemAddress As Long, var As Byte)

Private Function GetBIOSDate() As String
Dim p As Byte, MemAddr As Long, sBios As String
Dim i As Integer

MemAddr = &HFFFF5
For i = 0 To 7
Call GetMem1(MemAddr + i, p)
sBios = sBios & Chr$(p)
Next i
GetBIOSDate = sBios
End Function
´Using
´Text1.Text = GetBiosDate

  Respuesta:  c&m
Yo es poco lo que se de Visual Basic. Pero por lo poco que conozco encuentro razonable que Visual Basic no pueda detectar cual es el número de serie de la BIOS, ya que Visual Basic es un software orientado básicamente a las Bases de Datos y no a la administración de Hardware y Software.
A mi parecer la solución debería ser :

1) Crear un programa en C, C++ o Assembler, que entregue el resultado que tu deseas en un archivo de text (.txt).
2) Ejecutar desde Visual Basic el programa creado en punto anterior.
3) Leer con Visual Basic el archivo de texto.
Según lo que he leido, con Visual Basic 5.0 se podría hacer lo que quieres, según algunos paper´s que he leido es como una mezcla de C++ y Visual Basic.