WMI y Visual FoxPro 9.0 SP1
WMI nos ofrece una serie de funciones sobre el equipo que nos permiten extraer información como números de series de dispositivos USB, CD-Room, Mainboard y tipo de chasis, sobre estos dos últimos trataremos en este artículo.
El dinamismo que nos permite VFP9 y la íntima relación con el sistema operativo describiremos el código que nos permite extraer el número de serie del mainboard y el tipo de chasis en que nuestro sistema se encuentra operando.
* activamos el programa para crear una clase que contiene la descripción del chasis
* SET PROCEDURE TO serial
CLEAR
* nombre equipo o servidor
strComputer = "."
* creamos el objeto con la referencia . que nos indica que es el equipo local
objWMIService = GETOBJECT("winmgmts:{impersonationLevel=impersonate}!\\" + strComputer + "\root\cimv2")
* extraemos la consulta de la raiz que nos permite ver las propiedades a un objeto
colSMBIOS = objWMIService.ExecQuery ("Select * from Win32_SystemEnclosure")
* recorremos el objeto para extraer el número de serie y el número de parte
FOR EACH objSMBIOS IN colSMBIOS
? "Número de parte: " + objSMBIOS.PartNumber
? "Número de serie: " + objSMBIOS.SerialNumber
NEXT
* recorremos el objeto para extraer el número de tipo
* de chasis y llamamos a la clase que los contiene
FOR EACH objChassis IN colSMBIOS
FOR EACH objItem IN objChassis.ChassisTypes
o_chasis=CREATEOBJECT("c_chasis")
? "El chasis es: "+o_chasis.chasis(objitem)
NEXT
NEXT
* definición de la clase que nos permite validar el # del tipo de chases
DEFINE CLASS c_chasis AS CUSTOM
PROCEDURE chasis(n_chasis)
DO CASE
CASE n_chasis=1
RETURN "Other"
CASE n_chasis=2
RETURN "Unknown "
CASE n_chasis=3
RETURN " Desktop "
CASE n_chasis=4
RETURN " Low Profile Desktop "
CASE n_chasis=5
RETURN " Pizza Box "
CASE n_chasis=6
RETURN " Mini Tower "
CASE n_chasis=7
RETURN " Tower "
CASE n_chasis=8
RETURN " Portable"
CASE n_chasis=9
RETURN " Laptop "
CASE n_chasis=10
RETURN " Notebook "
CASE n_chasis=11
RETURN " Hand Held "
CASE n_chasis=12
RETURN " Docking Station "
CASE n_chasis=13
RETURN " All in One "
CASE n_chasis=14
RETURN " Sub Notebook "
CASE n_chasis=15
RETURN " Space-Saving"
CASE n_chasis=16
RETURN " Lunch Box "
CASE n_chasis=17
RETURN " Main System Chassis"
CASE n_chasis=18
RETURN " Expansion Chassis "
CASE n_chasis=19
RETURN " SubChassis "
CASE n_chasis=20
RETURN " Bus Expansion Chassis "
CASE n_chasis=21
RETURN " Peripheral Chassis "
CASE n_chasis=22
RETURN " Storage Chassis "
CASE n_chasis=23
RETURN " Rack Mount Chassis "
CASE n_chasis=24
RETURN " Sealed-Case PC "
ENDCASE
ENDDEFINE
Franklin S. Garzón A. (Ecuador)
No hay comentarios. :
Publicar un comentario
Los comentarios son moderados, por lo que pueden demorar varias horas para su publicación.