<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"><channel><category>pcsoft.fr.windev</category><copyright>Copyright 2026, PC SOFT</copyright><lastBuildDate>11 Jul 2020 15:41:20 Z</lastBuildDate><pubDate>6 Jul 2020 06:43:18 Z</pubDate><description>Bonjour,&#13;
&#13;
Je suis à me créer un ensemble de services WMI.&#13;
- Depuis l'idée de Philippe Pasquali et son ggWMI.&#13;
- Depuis l'idée de cConsole de Jurrasic Pork.&#13;
&#13;
J'ai fait de bons progrès mais tout naturellement, je bloque.&#13;
&#13;
Une table de test avec avec Win32_BIOS.&#13;
https://hostimage.windev.io/images/Test_4cceab37f10764b3965289f1733bc074.jpg&#13;
&#13;
&#13;
Déclarations globales (Tableaux avec agrandissement...)&#13;
[code:wl]&#13;
ciWMITyp est un tableau &lt;agrandissement = 1&gt; de chaînes // Chaîne, entier, etc.&#13;
ciWMIClé est un tableau &lt;agrandissement = 1&gt; de chaînes // Clé pour appel WMI&#13;
ciWMIVal est un tableau &lt;agrandissement = 1&gt; de chaînes // Valeurs retournées&#13;
[/code]&#13;
&#13;
&#13;
Routine appelée par le bouton de test:&#13;
[code:wl]&#13;
PROCÉDURE ciPosteWMIWin32Bios(pPoste est une chaîne = NetNomMachine())&#13;
//&#13;
gWMIClasse = "Win32_BIOS"&#13;
//&#13;
Ajoute(ciWMITyp, "uint16")		;	Ajoute(ciWMIClé, "BiosCharacteristics[]")&#13;
Ajoute(ciWMITyp, "string")		;	Ajoute(ciWMIClé, "BIOSVersion[]")&#13;
Ajoute(ciWMITyp, "string")		;	Ajoute(ciWMIClé, "BuildNumber")&#13;
Ajoute(ciWMITyp, "string")		;	Ajoute(ciWMIClé, "Caption")&#13;
Ajoute(ciWMITyp, "string")		;	Ajoute(ciWMIClé, "CodeSet")&#13;
... et les autres...&#13;
//&#13;
ciWMIAppel(pPoste, gWMIClasse)&#13;
//&#13;
//--- EOF&#13;
[/code]&#13;
&#13;
&#13;
Routine pour l'appel à WMI&#13;
[code:wl]&#13;
PROCÉDURE PRIVÉ ciWMIAppel(pPoste est une chaîne, pClasse est une chaîne = "")&#13;
//&#13;
Validations...&#13;
//&#13;
x est un entier = 1&#13;
TANTQUE x &lt;= lNombreClés ET lValidation = Vrai&#13;
	//--- Retire les [] non utiles pour l'appel&#13;
	SI Droite(ciWMIClé[x], 2) = "[]" ALORS ciWMIClé[x] = Gauche(ciWMIClé[x], Taille(ciWMIClé[x]) - 2)&#13;
	SI SansEspace(ciWMIClé[x]) &lt;&gt; "" ALORS&#13;
		//--- clé présente, on extrait&#13;
		ciWMIVal[x] = ciWMIExtrait(pPoste, pClasse, ciWMIClé[x])&#13;
	SINON&#13;
		//--- Clé à vide, on passe&#13;
		ciWMIVal[x] = ""&#13;
	FIN&#13;
	x ++	&#13;
FIN&#13;
[/code]&#13;
&#13;
&#13;
Routine d'extraction elle-même.&#13;
[code:wl]&#13;
PROCÉDURE PRIVÉ ciWMIExtrait(pPoste est une chaîne, pClasse est une chaîne = "", pCle est une chaîne = "")&#13;
QUAND EXCEPTION DANS&#13;
	gObjService = gObjLocator &gt;&gt; ConnectServer(".","root\cimv2")&#13;
	gObjService &gt;&gt; Security_ &gt;&gt; ImpersonationLevel = 3&#13;
	//&#13;
	gObjValNum = 0&#13;
	gObjExtract = gObjService &gt;&gt; ExecQuery("SELECT " + pCle + " FROM " + pClasse)&#13;
	//&#13;
	SI gObjExtract &gt;&gt; Count ALORS&#13;
		gObjValTxt = gObjExtract &gt;&gt; ItemIndex(0) &gt;&gt; Properties_ &gt;&gt; Item(pCle) &gt;&gt; Value&#13;
	FIN&#13;
	RENVOYER gObjValTxt&#13;
FAIRE&#13;
	RENVOYER "Non reconnu..."&#13;
FIN&#13;
[/code]&#13;
&#13;
&#13;
Je passe la classe (Win32_BIOS) et la clé (Ex: Caption).&#13;
&#13;
En bouclant, je m'assure d'un résultat même s'il y a une exception sur l'un des items.&#13;
Fonctionne parfaitement sauf pour les trois clés qui sont des tableaux de valeurs.&#13;
BiosCharacteristics, BIOSVersion et ListOfLanguages.&#13;
&#13;
Je passe les trois sans les [ et ].&#13;
&#13;
Il y a quelque chose qui m'échappe avec SI gObjExtract &gt;&gt; Count&#13;
J'ai bien tenté de faire une boucle x et ItemIndex(x), mais il refuse...&#13;
&#13;
Comment puis-je traiter les "tableaux" de valeurs tels BiosCharacteristics ?&#13;
&#13;
&#13;
Exemple de Microsoft:&#13;
[code:text]&#13;
Win32_Bios WMI Information&#13;
Bios Characteristics&#13;
                      :  04-ISA is supported&#13;
                      :  07-PCI is supported&#13;
                      :  08-PC Card (PCMCIA) is supported&#13;
                      :  09-Plug and Play is supported&#13;
Bios Version          :  DELL   - 27d60a0d&#13;
Codeset               :&#13;
CurrentLanguage       :  en|US|iso8859-1&#13;
Description           :  Phoenix ROM BIOS PLUS Version 1.10 A04&#13;
IdentificatonCode     :&#13;
[/code]&#13;
&#13;
&#13;
D'avance, merci pour votre aide.&#13;
&#13;
Serge&#13;
&#13;
--&#13;
-----&#13;
Parfois, la logique est implacable...</description><ttl>30</ttl><generator>WEBDEV</generator><language>fr_FR</language><link>https://forum.pcsoft.fr/es-ES/pcsoft.fr.windev/240952-question-wmi/read.awp</link><title>Question WMI</title><managingEditor>moderateur@pcsoft.fr (El moderador)</managingEditor><webMaster>webmaster@pcsoft.fr (El webmaster)</webMaster><item><author>Monsieur Serge</author><category>pcsoft.fr.windev</category><comments>https://forum.pcsoft.fr/es-ES/pcsoft.fr.windev/240952-question-wmi-241101/read.awp</comments><pubDate>11 Jul 2020 15:41:20 Z</pubDate><description>Salut,&#13;
&#13;
J'avais résolu mon problème en encapsulant le QUAND EXCEPTION dans une seconde procédure.&#13;
Avec un contrôle approprié,…</description><guid isPermaLink="true">https://forum.pcsoft.fr/es-ES/pcsoft.fr.windev/240952-question-wmi-241101/read.awp</guid><link>https://forum.pcsoft.fr/es-ES/pcsoft.fr.windev/240952-question-wmi-241101/read.awp</link><source url="https://forum.pcsoft.fr/es-ES/pcsoft.fr.windev/240952-question-wmi/read.awp">Question WMI</source><title>Re: Question WMI</title></item><item><author>Jurassic Pork</author><category>pcsoft.fr.windev</category><comments>https://forum.pcsoft.fr/es-ES/pcsoft.fr.windev/240952-question-wmi-241084/read.awp</comments><pubDate>10 Jul 2020 08:24:23 Z</pubDate><description>hello,&#13;
avec l'assemblage dotnet System.Management, on peut sous Windev, récupérer toutes les propriétés de la classe Win32_Bios…</description><guid isPermaLink="true">https://forum.pcsoft.fr/es-ES/pcsoft.fr.windev/240952-question-wmi-241084/read.awp</guid><link>https://forum.pcsoft.fr/es-ES/pcsoft.fr.windev/240952-question-wmi-241084/read.awp</link><source url="https://forum.pcsoft.fr/es-ES/pcsoft.fr.windev/240952-question-wmi/read.awp">Question WMI</source><title>Re: Question WMI</title></item><item><author>Monsieur Serge</author><category>pcsoft.fr.windev</category><comments>https://forum.pcsoft.fr/es-ES/pcsoft.fr.windev/240952-question-wmi-240962/read.awp</comments><pubDate>6 Jul 2020 15:27:51 Z</pubDate><description>Salut,&#13;
https://hostimage.windev.io/images/Test_99a9c111ebcc5dedc1d04ba27b956282.jpg&#13;
Exactement le bout de code que je cherchai…</description><guid isPermaLink="true">https://forum.pcsoft.fr/es-ES/pcsoft.fr.windev/240952-question-wmi-240962/read.awp</guid><link>https://forum.pcsoft.fr/es-ES/pcsoft.fr.windev/240952-question-wmi-240962/read.awp</link><source url="https://forum.pcsoft.fr/es-ES/pcsoft.fr.windev/240952-question-wmi/read.awp">Question WMI</source><title>Re: Question WMI</title></item><item><author>Jurassic Pork</author><category>pcsoft.fr.windev</category><comments>https://forum.pcsoft.fr/es-ES/pcsoft.fr.windev/240952-question-wmi-240959/read.awp</comments><pubDate>6 Jul 2020 13:15:51 Z</pubDate><description>hello,&#13;
va faire peut-être un tour ici : &#13;
https://forum.pcsoft.fr/fr-FR/pcsoft.fr.windev/54665-api-winspool-drv-statut-impriman…</description><guid isPermaLink="true">https://forum.pcsoft.fr/es-ES/pcsoft.fr.windev/240952-question-wmi-240959/read.awp</guid><link>https://forum.pcsoft.fr/es-ES/pcsoft.fr.windev/240952-question-wmi-240959/read.awp</link><source url="https://forum.pcsoft.fr/es-ES/pcsoft.fr.windev/240952-question-wmi/read.awp">Question WMI</source><title>Re: Question WMI</title></item></channel></rss>
