Página 1 de 1

Numero de serie de una memoria USB

Publicado: Sab Nov 23, 2013 4:08 am
por Rich
Hola:
Alguien me podria decir como puedo leer el numero de serie de una memoria USB desde Xailer?
De antemano mil gracias.

Numero de serie de una memoria USB

Publicado: Mar Nov 26, 2013 8:00 pm
por juanc
Creo que con Wmi podrias hacer algo.
Saludos Cordiales.
"Sergio Garcia Luna" <meridiano74[at]prodigy[dot]net[dot]mx> escribis en el
mensaje news:52901c41$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
> Hola:
>
> Alguien me podria decir como puedo leer el numero de serie
> de una memoria USB desde Xailer?
>
> De antemano mil gracias.
> --
> Saludos amigos.
---
Este mensaje no contiene virus ni malware porque la protección de avast! Antivirus está activa.
http://www.avast.com

Numero de serie de una memoria USB

Publicado: Mar Nov 26, 2013 8:13 pm
por Rich
Gracias Juanc.
Intento lo siguiente, pero el valor que busco (oTemp:SerialNumber ) me regresa NIl en todos los casos
y no tango la menor idea de por que. Te agradecerí­a si me puedes orientar.
Tambien vi esto en Internet, pero no se como introducirlo: ("SELECT * FROM Win32_DiskDrive WHERE InterfaceType='USB'");
METHOD Button1Click( oSender ) CLASS TForm1
LOCAL oTemp
::oServer := CreateObject( "wbemScripting.SwbemLocator" )
::oWMI := ::oServer:ConnectServer()
::oDrives := ::oWMI:ExecQuery( "SELECT * FROM Win32_PhysicalMedia" )
::oBoard := ::oWMI:ExecQuery( "SELECT * FROM Win32_BaseBoard" )
::oBios := ::oWMI:ExecQuery( "SELECT * FROM Win32_BIOS" )
altd()
FOR EACH oTemp IN ::oDrives
MsgInfo( "Serie del disco: " + Str( oTemp:SerialNumber ) )
NEXT
FOR EACH oTemp IN ::oBoard
MsgInfo( "Serie de la placa: " + Str( oTemp:SerialNumber ) )
NEXT
FOR EACH oTemp IN ::oBios
MsgInfo( "Serie de la BIOS: " + Str( oTemp:SerialNumber ) )
NEXT
RETURN Nil

Numero de serie de una memoria USB

Publicado: Jue Nov 28, 2013 3:46 pm
por juanc
Hola Sergio, ojala te de un norte el siguiente codigo:
Static Function GetUSBSerial( cDrive )
Local oJob
Local cDriveNumber
Local oJobs := oWMI:Win32_LDP
//
cDrive := Upper(cDrive)
If Len( cDrive ) == 1
cDrive += ":"
EndIf
If Len(cDrive) > 2
cDrive := SubStr(cDrive,1,2)
EndIf
For Each oJob In oJobs
If cDrive == __StrToken( oJob:Dependent, 2, '"' )
cDriveNumber = SubStr( __StrToken( __StrToken( oJob:Antecedent, 2,
'"' ), 1, "," ), 7 )
oWMI:cDriveNumber := cDriveNumber
Return GetSerial( cDriveNumber )
EndIf
Next
Return ""
Static Function GetSerial( cDriveNumber )
Local oDrive
Local cSerial:= ""
Local aDrives:= oWMI:Win32_DD
//
For Each oDrive In aDrives
If oDrive:Name == ".PHYSICALDRIVE" + cDriveNumber .and.
oDrive:InterfaceType == "USB"
cSerial := oDrive:PNPDeviceID
cSerial := SubStr( cSerial, 1, Rat( "&", cSerial ) - 1 )
cSerial := SubStr( cSerial, Rat( "&", cSerial ) + 1 )
If At( "", cSerial ) != 0
cSerial = SubStr( cSerial, At( "", cSerial ) + 1 )
EndIf
Return cSerial
EndIF
Next
Saludos Cordiales.
"Sergio Garcia Luna" <meridiano74[at]prodigy[dot]net[dot]mx> escribis en el
mensaje news:5294f2c8$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
> Gracias Juanc.
>
> Intento lo siguiente, pero el valor que busco
> (oTemp:SerialNumber ) me regresa NIl en todos los casos
> y no tango la menor idea de por que. Te agradecerma si me
> puedes orientar.
>
> Tambien vi esto en Internet, pero no se como introducirlo: ("SELECT * FROM
> Win32_DiskDrive WHERE
> InterfaceType='USB'");
>
>
> METHOD Button1Click( oSender ) CLASS TForm1
>
> LOCAL oTemp
>
> ::oServer := CreateObject( "wbemScripting.SwbemLocator"
> )
> ::oWMI := ::oServer:ConnectServer()
> ::oDrives := ::oWMI:ExecQuery( "SELECT * FROM
> Win32_PhysicalMedia" )
> ::oBoard := ::oWMI:ExecQuery( "SELECT * FROM
> Win32_BaseBoard" )
> ::oBios := ::oWMI:ExecQuery( "SELECT * FROM Win32_BIOS"
> )
>
> altd()
> FOR EACH oTemp IN ::oDrives
> MsgInfo( "Serie del disco: " + Str( oTemp:SerialNumber
> ) )
> NEXT
>
> FOR EACH oTemp IN ::oBoard
> MsgInfo( "Serie de la placa: " + Str(
> oTemp:SerialNumber ) )
> NEXT
>
> FOR EACH oTemp IN ::oBios
> MsgInfo( "Serie de la BIOS: " + Str( oTemp:SerialNumber
> ) )
> NEXT
>
> RETURN Nil
> --
> Saludos amigos.
---
Este mensaje no contiene virus ni malware porque la protección de avast! Antivirus está activa.
http://www.avast.com

Numero de serie de una memoria USB

Publicado: Jue Nov 28, 2013 10:53 pm
por Rich
Juanc te agradezco tu amable ayuda.
Voy a probar con el código que me proporcionas.