Registrado: Sep 21, 2004 Mensajes: 42 Ubicación: Lima
Publicado: 03/07/2005 09:45:09 pmAsunto:
Bueno, el número de serie no (hasta donde he podido encontrar), pero si el nombre del fabricante y el modelo con ayuda de las WMI de Windows. Aquí te dejo un ejemplo de código (probado en Windows XP sólamente).
Para utilizar WMI tienes que ir al menú Proyecto - Referencias y marcar "Microsoft WMI Scripting V1.2 Library".
Código:
Dim Sistema As SWbemObjectSet
Dim Datos As SWbemObject
Set Sistema = GetObject("winmgmts:{impersonationLevel=impersonate}"). _
InstancesOf("Win32_ComputerSystem")
For Each Datos In Sistema
MsgBox "Fabricante del sistema: " & (Datos.Manufacturer)
MsgBox "Modelo: " & (Datos.Model)
Next Datos
Registrado: Aug 03, 2005 Mensajes: 30 Ubicación: Lima
Publicado: 04/08/2005 11:41:23 amAsunto:
Cual es el numero de Serie del equipo?...
Si te refieres al numero de serie del disco duro, te dejo el siguiente codigo, donde tienes que ingresar alguna ruta del volumen que quieres leer por ejemplo C:\
'---------------------------------------------------------------------------
'Form de prueba para leer la etiqueta y el número de serie de un disco.
'---------------------------------------------------------------------------
Option Explicit
'Declaración de la función, sólo está en el API de 32 bits
'
Private Declare Function GetVolumeInformation Lib "Kernel32" _
Alias "GetVolumeInformationA" (ByVal lpRootPathName As String, _
ByVal lpVolumeNameBuffer As String, _
ByVal nVolumeNameSize As Long, _
lpVolumeSerialNumber As Long, _
lpMaximumComponentLength As Long, _
lpFileSystemFlags As Long, _
ByVal lpFileSystemNameBuffer As String, _
ByVal nFileSystemNameSize As Long) As Long
Private Sub Command1_Click()
'Acción
Dim lVSN As Long, n As Long, s1 As String, s2 As String
Dim unidad As String
Dim sTmp As String
On Local Error Resume Next
'Se debe especificar el directorio raiz
unidad = Trim$(Text1)
'Reservar espacio para las cadenas que se pasarán al API
s1 = String$(255, Chr$(0))
s2 = String$(255, Chr$(0))
n = GetVolumeInformation(unidad, s1, Len(s1), lVSN, 0, 0, s2, Len(s2))
's1 será la etiqueta del volumen
'lVSN tendrá el valor del Volume Serial Number (número de serie del volumen)
's2 el tipo de archivos: FAT, etc.
'Convertirlo a hexadecimal para mostrarlo como en el Dir.
sTmp = Hex$(lVSN)
Label3(0) = s1
Label3(1) = Left$(sTmp, 4) & "-" & Right$(sTmp, 4)
Label3(2) = s2
End Sub
Private Sub Command2_Click()
Unload Me
End
End Sub
Private Sub Form_Unload(Cancel As Integer)
'Asegurarnos de "liberar" la memoria.
Set Form1 = Nothing
End Sub
EN VB 2008 ESTE CODIGO FUNCIONA PERFECTAMENTE..........
TE DA EL NUMERO DE SERIE DEL DISCO DURO (UNICO/FABRICANTE)
Imports System.Management
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim physicalMedia As New ManagementClass("Win32_PhysicalMedia")
For Each physicalMedium As ManagementObject In physicalMedia.GetInstances()
If physicalMedium("SerialNumber") Is Nothing Then
' NADA
Else
txtSerialHDD.Text = CStr(physicalMedium("SerialNumber"))
End If
Next physicalMedium
End Sub
End Class
************** LO HE PROBADO 236 VECES EN MAS DE 100 PC
Puede publicar nuevos temas en este foro No puede responder a temas en este foro No puede editar sus mensajes en este foro No puede borrar sus mensajes en este foro No puede votar en encuestas en este foro