Bonjour,
le WLangage n'est pas un langage orienté système a proprement dit c'est de ce fait qu'il faille utiliser soit des apis soit les assemblages DotNet pour y parvenir.
Meme si le WMI est très puissant pour récupérer des informations systemes il n'en reste pas moins nécessaire de parcourir différentes collections d'objets que malheureusement le Wlangage ne manipule pas encore en tant que telles, d'ou l'utilisation des assemblages.
Il est vrai que pour récupérer une information qui pourrait paraître simple car il ne s'agit que d'une simple requête "SELECT * FROM Wmi32_VideoController"
Il est nécessaire d'initialiser des objets et de parcourir tout de meme une collection et de demander la valeur du paramètre "AdapterRAM"
Si vous reprener ma ressource il ne devrait avoir à changer que quelque ligne dans la procedure 'Execution'
remplacer
aObjectQuery = allouer un ObjectQuery("SELECT * FROM " + W32String)
Par
aObjectQuery = allouer un ObjectQuery("SELECT * FROM Wi32_VideoController")
puis remplacer
TANTQUE (IEnumProp:MoveNext())
aPropertyData est un PropertyData dynamique
aPropertyData = IEnumProp:get_Current()
sName est une chaîne = GetName(aPropertyData)
SI sName = "" ALORS GOTO SUITE
sRes est une chaîne = ""
QUAND EXCEPTION DANS
sRes = aManagementObject:GetPropertyValue(sName)
FAIRE
ExceptionActive()
sRes = "N/A"
FIN
//si sres <> "N/A" alors
TableAjoute(Table,"" +TAB+ aPropertyData:get_Name() + TAB + sRes)
ListeSelectPlus(Table,Table..Occurrence)
Multitâche(-1)
//fin
SUITE:
FIN
Par
TANTQUE (IEnumProp:MoveNext())
sName est une chaîne = "AdapterRAM"
sRes est une chaîne = ""
QUAND EXCEPTION DANS
sRes = aManagementObject:GetPropertyValue(sName)
FAIRE
ExceptionActive()
sRes = "N/A"
FIN
//si sres <> "N/A" alors
Info("AdapterRam = " + sRes)
RETOUR
SUITE:
FIN
Dans un deuxieme temp vous pourrez alors diminuer le code en appliquant la requête qu'indique mbsl :
"SELECT AdapterRAM FROM Win32_VideoController"
Les modifications apportées sont saisies à la volée et peuvent comporter des erreurs.