MI Estimado, prueba con esto:
Function WMainInfo()
LOCAL 聽oDatos, oSrv, oJob, i
LOCAL 聽 聽nFree:= ""
LOCAL 聽 聽 oLoc:= CreateObject( "wbemScripting.SwbemLocator" )
LOCAL 聽 objWMI:= oLoc:ConnectServer()
LOCAL oSistema:= objWMI:ExecQuery("Select * from Win32_PhysicalMedia")
LOCAL 聽 oDisco:= objWMI:ExecQuery("Select * from Win32_LogicalDisk")
LOCAL 聽 oParti:= objWMI:ExecQuery("Select * from CIM_DiskPartition")
LOCAL 聽oDisket:= objWMI:ExecQuery("Select * From Win32_LogicalDisk Where DeviceID = 'A:'")
LOCAL 聽 objUnd:= objWMI:ExecQuery("Select * from Win32_MappedLogicalDisk")
LOCAL 聽 聽 oUnd:= objWMI:ExecQuery("Select * from Win32_CDROMDrive")
LOCAL 聽oResolu:= objWMI:ExecQuery("Select * from Win32_DesktopMonitor")
LOCAL 聽oSistem:= objWMI:ExecQuery("Select * from Win32_OperatingSystem")
LOCAL 聽 oUsers:= objWMI:ExecQuery("Select * from Win32_Account")
LOCAL 聽 聽oServ:= objWMI:ExecQuery("Select * from Win32_Service Where Name = 'Themes'")
LOCAL 聽 聽oTime:= objWMI:ExecQuery("Select * from Win32_LocalTime")
LOCAL 聽 聽oProc:= objWMI:ExecQuery("Select * from Win32_Processor")
LOCAL 聽 聽 oJbs:= objWMI:ExecQuery("SELECT Product, SerialNumber FROM Win32_BaseBoard")
LOCAL 聽 oIpSet:= objWMI:ExecQuery("SELECT IPAddress FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled=TRUE")
LOCAL 聽 oList := objWMI:ExecQuery("Select * from Win32_ComputerSystem")
//Return(Nil)
objWMI:= oLoc:ConnectServer()
oJbs := objWMI:ExecQuery( "select * from Win32_BaseBoard" )
//oSrv:ExecQuery( "SELECT * FROM Win32_BaseBoard" )
FOR EACH oDatos IN oJbs
聽 oApp:tMBrd := Alltrim(cValtoChar(oDatos:Product))
聽 oApp:sMBrd := Alltrim(cValtoChar(oDatos:SerialNumber))
NEXT
FOR EACH oDatos IN oProc
聽 oApp:nCpu := Alltrim(cValtoChar(oDatos:Name))
聽 oApp:vCpu := Alltrim(cValtoChar(oDatos:CurrentClockSpeed)) + " Mghz"
NEXT
FOR Each oDatos in oSistem
聽 oApp:vDOS := oDatos:Caption + " " + oDatos:VERSION
NEXT
Return(NIl)
/*
FOR Each oDatos In oSistema
聽 聽 MsgInfo("Serial de fabrica: " + ALLTRIM(cValToChar(oDatos:SerialNumber)),"Numero de serie del disco duro")
NEXT
FOR Each oDatos In oDisco
聽 聽 MsgInfo("Unidad: " + ALLTRIM(cValToChar(oDatos:Name)) + "\ 聽Serial: " + ALLTRIM(cValToChar(oDatos:VolumeSerialNumber)),"Unidad y serial l贸gico de las unidades de disco")
NEXT
FOR Each oDatos in oParti
聽 聽 MsgInfo(ALLTRIM(cValToChar(oDatos:Name)) + " - Tama帽o: " +ALLTRIM(cValToChar(oDatos:Size)) + " En: " + ALLTRIM(cValToChar(oDatos:SystemName)) + " - Tipo: " + ALLTRIM(cValToChar(oDatos:TYPE)),"Particiones disponibles")
NEXT
FOR Each oDatos in oDisket
聽 聽 nFree:= oDatos:FreeSpace
聽 聽IF VALTYPE(nFree) = "U"
聽 聽 聽 聽 聽MsgInfo("No hay diskete en la unidad A:\","Aviso del WMI de Windows")
聽 聽ELSE
聽 聽 聽 聽 聽MsgStop("Hay un diskete en la unidad A:\","Aviso del WMI de Windows")
聽 聽ENDIF
NEXT
FOR Each oDatos In objUnd
聽 聽 MsgInfo("Device ID: " + oDatos:DeviceID +" Nombre: " + oDatos:Name +" Espacio Libre: " + cValtoChar(oDatos:FreeSpace) + " Tama帽o: " + cValtoChar(oDatos:Size),"Lista de unidades Mapeadas en Mi PC")
NEXT
FOR Each oDatos in oUnd
聽 聽 MsgInfo("Unidad: " + oDatos:Drive + " " + "Nombre: " + oDatos:Caption,"Unidades de CD instaladas en el equipo")
NEXT
FOR Each oDatos in oResolu
聽 聽MsgInfo("Trabajando a Resoluci贸n de Alto: " + cValToChar(oDatos:ScreenHeight) + " 聽y Ancho: " + cValToChar(oDatos:ScreenWidth),"Resolucion de Panralla")
NEXT
FOR Each oDatos In oSistem
聽 聽 MsgInfo(oDatos:InstallDate,"Fecha de Instalaci贸n de Windows XP")
NEXT
FOR Each oDatos in oSistem
聽 聽 MsgInfo("Directorio de Windows es: " + oDatos:WindowsDirectory +" 聽Directorio del Sistema es: "+ oDatos:SystemDirectory,"Directorio de Windows y del Sistema")
NEXT
/*
FOR Each oDatos in oUsers
聽 聽 MsgInfo(cValToChar(oDatos:Name) + " - " + cValToChar(oDatos:Caption),"Lista de Usuarios de Windows")
NEXT
MsgInfo("Deshabilitarndo los Themes en Windows XP")
FOR Each oDatos in oServ
聽 聽 oDatos:StopService()
聽 聽 SysRefresh()
NEXT
MsgInfo("Habilitando los Themes en Windows XP")
FOR Each oDatos in oServ
聽 聽 oDatos:StartService()
聽 聽 SysRefresh()
NEXT
FOR Each oDatos in oSistem
聽 聽 MsgInfo(oDatos:Caption + " " + oDatos:VERSION,"Sistemas operativos instalados en el PC")
NEXT
FOR Each oDatos in oTime
聽 聽 聽MsgInfo( "D铆a: " + cValToChar(oDatos:DAY) + CRLF +;
聽 聽 聽 聽 聽 聽 聽 "D铆a de la semana: " + cValToChar(oDatos:DayOfWeek) + CRLF +;
聽 聽 聽 聽 聽 聽 聽 "Hora: " + cValToChar(oDatos:Hour) + CRLF +;
聽 聽 聽 聽 聽 聽 聽 "Minutos: " + cValToChar(oDatos:Minute) + CRLF +;
聽 聽 聽 聽 聽 聽 聽 "Mes: " + cValToChar(oDatos:MONTH) + CRLF +;
聽 聽 聽 聽 聽 聽 聽 "Segundos: " + cValToChar(oDatos:Second) + CRLF +;
聽 聽 聽 聽 聽 聽 聽 "Semana en el mes: " + cValToChar(oDatos:WeekInMonth) + CRLF +;
聽 聽 聽 聽 聽 聽 聽 "A帽o: " + cValToChar(oDatos:YEAR),"Dia, Hora, Mes y A帽o desde WMI")
NEXT
FOR EACH oDatos IN oProc
聽 聽 聽 聽 MsgInfo("El Nombre del Procesador es: "+Alltrim(cValtoChar(oDatos:Name)),"Desde WMI")
聽 聽 聽 聽 MsgInfo("la Velocidad Actual del Procesador es: "+Alltrim(cValtoChar(oDatos:CurrentClockSpeed)) + " Mghz","Desde WMI")
聽 聽 聽 聽 MsgInfo("la Velocidad M脿xima del Procesador es: "+Alltrim(cValtoChar(oDatos:MaxClockSpeed)) + " Mghz","Desde WMI")
NEXT
FOR EACH oDatos IN oJbs
聽 聽 聽 聽 MsgInfo("El Tipo de la MotherBoard es: "+Alltrim(cValtoChar(oDatos:Product)),"Desde WMI")
聽 聽 聽 聽 MsgInfo("El N煤mero de Serie de la MotherBoard es: "+Alltrim(cValtoChar(oDatos:SerialNumber)),"Desde WMI")
NEXT
FOR EACH oDatos IN oIPSet
聽 MsgInfo("El IPAddress es: " 聽+ Alltrim(cValtoChar(oDatos:IPAddress(0))), "Desde WMI")
聽 MsgInfo("El MacAddress es: " 聽+ Alltrim(cValtoChar(oDatos:IPAddress(1))), "Desde WMI")
NEXT
FOR EACH oDatos IN oList
聽 聽 If oDatos:PartOfDomain
聽 聽 聽 聽MsgInfo("Dominio: " + oDatos:Domain, "Desde WMI")
聽 聽 聽 Else
聽 聽 聽 聽MsgInfo("Grupo de Trabajo: " + oDatos:Domain, "Desde WMI")
聽 聽 EndIf
Next
Return nil