Re: Mémoire graphique

Posté par drcharly93 le 9/11/2005 10:56:46
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.

Cette contribution était de : http://old.wdforge.org/newbb/viewtopic.php?forum=14&topic_id=3014&post_id=12667