lcClass = "Win32_Printer" oWMI = GETOBJECT("winmgmts:") oItems = oWMI.ExecQuery("select * from " + lcClass) FOR EACH oItem IN oItems oClass = oItem EXIT NEXT oItem = CREATEOBJECT("empty") FOR EACH oProperty IN oClass.Properties_ cName = oProperty.NAME IF oProperty.IsArray lnItems = 1 DIMENSION vArray[1] *? cName TRY FOR lnItems=1 TO 999 DIMENSION vArray[lnItems] vArray[lnItems] = oProperty.VALUE[lnItems-1] *? lnItems, vArray[lnItems] ENDFOR CATCH TO oExp WHEN oExp.ERRORNO = 1426 ; AND (UPPER("Does not support a collection") $ UPPER(oExp.MESSAGE)) vArray[lnItems] = oProperty.VALUE CATCH TO oExp WHEN oExp.ERRORNO = 1426 ; AND ("INVALID INDEX" $ UPPER(oExp.MESSAGE)) lnItems = lnItems - 1 DIMENSION vArray[lnItems] ENDTRY ADDPROPERTY(oItem, cName + "[1]" ) =ACOPY(vArray, oItem.&cName) ELSE vValue = oProperty.VALUE ADDPROPERTY(oItem, cName, vValue) ENDIF ENDFOR>code as under