25 de diciembre de 2005

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.

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