Jump to content

WMI Hardwares


Amesam
 Share

Recommended Posts

Hi,

I present to you an example of research material and system with the help of Script-o-matic by exploiting the objects selected.

Some details of the Win32 classes may be interesting to develop.
in this example are worked:
Win32_OperatingSystem
Win32_BIOS
Win32_BaseBoard
Win32_Processor
Win32_PhysicalMemory
Win32_VideoController


for example with the classes Win32_BIOS Script-o-matic returns for BiosCharacteristics:
BiosCharacteristics:7

2016-05-09_224131.jpg.e22249e217f30eec57

With WMI Hardwares.au3 for my PC and with some objects selected

UDF in french and English

2016-05-09_180554.png.ebaf9a92affae5756b

2016-05-09_230009.jpg.859e74f653811c1719
 

WMI Hardwares.au3

 

#cs ----------------------------------------------------------------------------
    AutoIt Version: 3.3.14.2
    Author:         Amesam
    Script Function: WMI Hardwares Request
    Purpose: Get informations from the Hardwares
    Note: Every Function returns a MsgBox

    client pris en charge minimum ;==> Windows Vista
    serveur minimale prise en charge ;==> Windows Server 2008
    namespace ;==> Root \ CIMV2
    MOF ;==> CIMWin32.mof
    DLL ;==> Cimwin32.dll

    ;==> Support AutoIt ScriptOMatic

    _WinClaasOperatingSystem()
    _OperatingSystem()
    _FreeMem()

    _WinClassesBios()
    _BIOS()
    _SMBIOSP()
    _BIOS_SoftwareElementState()
    _BIOSCharacteristics()

    _WinClassesBaseBoard()
    _BaseBoard()
    _HostingBoard()
    _HotSwappable()
    _Removable()
    _Replaceable()

    _WinClassesProcessor()
    _Processor()
    _TypeProc()
    _VirtualFirWareProc()
    _VMVirtualProcess()
    _StatuInfoProc()

    _PhysicalMemory()
    _GETDOSOUTPUT($COMMAND)

    _WinClassesVideoController()
    _VideoController()
    WMIDateStringToDate($dtmDate)
    _VideoArchitecture()
    _AcceleratorCapabilities()
    _Availability()
    _VideoMemoryType()
    _ConfigVideoUser()
    _ConfigManagerErrorCode()

#ce ----------------------------------------------------------------------------
AutoItSetOption("MustDeclareVars", 1)
Global $Fabr, $SortieWMI_OperatingSystem, $NumberOfLicensedUsers, $NumberOfProcesses, $NumberOfUsers, $Produit, $Caption, $SWMI, $SortieWMIRF, $SortieWMI_Bios, $Statut, $FreePhysicalMemory, $FreeSpaceInPagingFiles, $FreeVirtualMemory
Global $Bios, $Bios_LangageEdit, $Bios_NumSerie, $Bios_Statut, $Bios_Caracteristique, $Bios_OutSWMI, $Bios_OutOBJ, $FPMem, $ResutFreePhyMem, $FSpacePF, $ResultFreeSpacePF, $FreeVirtualMem, $ResultFreeVirtualMem
Global $Bios_SMBIOSDispo, $SMBIOS_VSysMesure, $SMBIOS_NDispo, $Bios_ELIDepl, $Bios_ELIInst, $Bios_ELIExectable, $Bios_ELIExecution, $SortieWMI_Video
Global $OutputBios_0, $OutputBios_1, $OutputBios_2, $OutputBios_3, $OutputBios_4, $OutputBios_5, $OutputBios_6, $OutputBios_7, $OutputBios_8, $OutputBios_9, $OutputBios_10, $OutputBios_11, $OutputBios_12, $OutputBios_13, $OutputBios_14
Global $OutputBios_15, $OutputBios_16, $OutputBios_17, $OutputBios_18, $OutputBios_19, $OutputBios_20, $OutputBios_21, $OutputBios_22, $OutputBios_23, $OutputBios_24, $OutputBios_25, $OutputBios_26, $OutputBios_27, $OutputBios_28
Global $OutputBios_29, $OutputBios_30, $OutputBios_31, $OutputBios_32, $OutputBios_33, $OutputBios_34, $OutputBios_35, $OutputBios_36, $OutputBios_37, $OutputBios_38, $OutputBios_39, $OutputBios_40_47, $OutputBios_48_63
Global $BBoard_SWMI, $SortieWMI_BaseBoard, $VersBoard, $HostingBoard_true, $HostingBoard_false, $HotSwappable_true, $HotSwappable_false, $Removable_true, $Removable_false, $Replaceable_true, $Replaceable_false
Global $Name, $NamePorcess, $DWitch_Process, $NbCoreProcess, $NbCorePermis, $NbCoreLogique, $IDProcess, $TypeProcess, $OutputProc_1, $OutputProc_2, $OutputProc_3, $OutputProc_4, $OutputProc_5, $OutputProc_6
Global $ProcVirtuel, $ProcVirtuelNot, $WMProcess, $SortieWMI_Proc, $WMProcessInfo, $Autres, $Autre, $Inconnu, $Enabled, $Disabled, $Sansobjet, $ConfigOption, $Speed
Global $CMEC0, $CMEC1, $CMEC2, $CMEC3, $CMEC4, $CMEC5, $CMEC6, $CMEC7, $CMEC8, $CMEC9, $CMEC10, $CMEC11, $CMEC12, $CMEC13, $CMEC14, $CMEC15, $CMEC16, $CMEC17, $CMEC18, $CMEC19, $CMEC20, $CMEC21, $CMEC22, $CMEC23, $CMEC24, $CMEC25, $CMEC26, $CMEC27, $CMEC28, $CMEC29, $CMEC30, $CMEC31
Global $Accelerateur3D, $AccelerateurGraph, $ArchVideo, $Availability3, $Availability4, $Availability5, $Availability6, $Availability7, $Availability8, $Availability9, $Availability10, $Availability11, $Availability12, $Availability13, $Availability14, $Availability15, $Availability16, $Availability17, $Availability18, $Availability19, $Availability20, $Availability21
Global $SortieWMI_PhysicalMemory, $VideoMemoryType, $ControlVideo, $Capacity, $CMECWIN32, $ConfigUserVideo, $CurrentBitsPerPixel, $CurrentRefreshRate, $DeviceID, $DispoVideoControl, $DriverInstall, $Used, $False, $True, $FileINF, $Free, $MemVideo, $NumSerie, $Proprio, $Reference
Global $objWMIService = ""
Global $colItems = ""
Global $strComputer = "localhost"
Global $OutputTitle = ""
Global $Output = ""
Global $SLANGUE = ""
$OutputTitle &= "Computer: " & $strComputer & @CRLF
$OutputTitle &= "==========================================" & @CRLF

Select
    Case StringInStr("040c,080c,0c0c,100c,140c,180c", @OSLang) ; http://www.autoitscript.fr/autoit3/docs/appendix/OSLangCodes.htm
        $SLANGUE = "Francais"
    Case Else
        $SLANGUE = "Anglais"
EndSelect

Select
    Case $SLANGUE = "Francais"
        $Accelerateur3D = "Accélérateur 3D (3)"
        $AccelerateurGraph = "Accélérateur graphique (2)"
        $ArchVideo = "Type d'architecture vidéo : "
        $Autre = "Autre : "
        $Autres = "Statut Info : Autres (1)"
        $Availability10 = "Dégradé (10)"
        $Availability11 = "Non installé (11)"
        $Availability12 = "Erreur d'installation (12)"
        $Availability13 = "Économie d'énergie - Inconnu (13)"
        $Availability14 = "Économie d'énergie - Mode faible consommation (14)"
        $Availability15 = "Économie d'énergie - Veille (15)"
        $Availability16 = "Cycle d'alimentation (16)"
        $Availability17 = "Économie d'énergie - Avertissement (17)"
        $Availability18 = "Le dispositif est mis en pause (18)"
        $Availability19 = "Le dispositif est pas prêt (19)"
        $Availability20 = "Non configuré (20)"
        $Availability21 = "Suspendu (21)"
        $Availability3 = "Exécution / Full Power (3)"
        $Availability4 = "Avertissement (4)"
        $Availability5 = "Dans l'essai (5)"
        $Availability6 = "Sans objet (6)"
        $Availability7 = "Hors tension (7)"
        $Availability8 = "Hors ligne(8)"
        $Availability9 = "Hors service (9)"
        $BBoard_SWMI = " Sortie WMI pour la classe Win32_BaseBoard "
        $Bios = "BIOS : "
        $Bios_Caracteristique = "Caractéristiques du BIOS : "
        $Bios_ELIDepl = "État du logiciel d'installation : Déployable (0)"
        $Bios_ELIExectable = "État du logiciel d'installation : Executable (2)"
        $Bios_ELIExecution = "État du logiciel d'installation : Démarré (3)"
        $Bios_ELIInst = "État du logiciel d'installation : Installable (1)"
        $Bios_LangageEdit = "Langage Édition : "
        $Bios_NumSerie = "Numéro de série : "
        $Bios_OutOBJ = "Aucun objets WMI trouvés pour la Classe :" & "Win32_BIOS"
        $Bios_OutSWMI = "Aucune sortie WMI pour cette classe"
        $Bios_SMBIOSDispo = "SMBIOS : Disponible "
        $Capacity = "Capacité : "
        $Caption = "Légende : "
        $CMEC0 = "Cet appareil fonctionne correctement. (0) "
        $CMEC1 = "Ce dispositif est pas configuré correctement. (1) "
        $CMEC10 = "Ce dispositif ne peut pas démarrer. (10) "
        $CMEC11 = "Ce dispositif a échoué. (11) "
        $CMEC12 = "Ce dispositif ne peut pas trouver suffisamment de ressources libres qu'il peut utiliser. (12) "
        $CMEC13 = "Windows ne peut pas vérifier les ressources de ce dispositif. (13) "
        $CMEC14 = "Cet appareil peut ne pas fonctionner correctement jusqu'à ce que vous redémarrez votre ordinateur. (14) "
        $CMEC15 = "Ce dispositif ne fonctionne pas correctement car il y a probablement un problème ré-énumération. (15) "
        $CMEC16 = "Windows ne peut pas identifier toutes les ressources utilisées par ce périphérique. (16) "
        $CMEC17 = "Ce dispositif demande un type de ressource inconnu. (17) "
        $CMEC18 = "Réinstaller les pilotes de ce périphérique. (18) "
        $CMEC19 = "Défaut d' utiliser le chargeur VxD. (19) "
        $CMEC2 = "Windows ne peut pas charger le pilote de ce périphérique. (2) "
        $CMEC20 = "Votre Registre est peut - être corrompu. (20) "
        $CMEC21 = "Défaillance du système: Essayez de changer le pilote de ce périphérique. Si cela ne fonctionne pas, consultez la documentation de votre matériel. Windows supprime ce périphérique. (21) "
        $CMEC22 = "Ce périphérique est désactivé. (22) "
        $CMEC23 = "Défaillance du système: Essayez de changer le pilote de ce périphérique. Si cela ne fonctionne pas, consultez la documentation de votre matériel. (23)"
        $CMEC24 = "Ce dispositif est pas présent, ne fonctionne pas correctement, ou ne possède pas tous ses pilotes installés. (24) "
        $CMEC25 = "Windows est toujours en place ce dispositif. (25) "
        $CMEC26 = "Windows est toujours en place ce dispositif. (26) "
        $CMEC27 = "Ce dispositif n'a pas la configuration de journal valide. (27) "
        $CMEC28 = "Les pilotes de ce périphérique ne sont pas installés. (28) "
        $CMEC29 = "Ce périphérique est désactivé car le firmware de l'appareil ne lui donne pas les ressources nécessaires. (29) "
        $CMEC3 = "Le pilote de ce périphérique peut être endommagé ou votre système peut être à court de mémoire ou d' autres ressources. (3) "
        $CMEC30 = "Cet appareil utilise une demande d' interruption (IRQ) ressources qu'un autre périphérique utilise. (30) "
        $CMEC31 = "Ce dispositif ne fonctionne pas correctement car Windows ne peut pas charger les pilotes requis pour ce périphérique. (31) "
        $CMEC4 = "Ce dispositif ne fonctionne pas correctement. L' un de ses pilotes ou votre registre peut - être endommagé. (4) "
        $CMEC5 = "Le pilote de ce périphérique a besoin d' une ressource que Windows ne peut pas gérer. (5) "
        $CMEC6 = "La configuration de démarrage de ce périphérique est en conflit avec d' autres appareils. (6) "
        $CMEC7 = "Vous ne pouvez pas filtrer. (7) "
        $CMEC8 = "Le chargeur de pilote pour le périphérique est manquant. (8) "
        $CMEC9 = "Ce dispositif ne fonctionne pas correctement parce que le firmware de contrôle signale les ressources de l'appareil de manière incorrecte. (9) "
        $CMECWIN32 = "Win32 Configuration Manager code d'erreur : "
        $ConfigOption = "Options de configuration"
        $ConfigUserVideo = "Configuration définie par l' utilisateur : "
        $ControlVideo = "Contrôleur vidéo et graphiques : "
        $CurrentBitsPerPixel = "Nombre de bits utilisés pour afficher chaque pixel : "
        $CurrentRefreshRate = "Fréquence à laquelle le contrôleur vidéo rafraîchit l'image : "
        $DeviceID = "Référence de l'appareil : "
        $Disabled = "Statut Info : Désactivé (4)"
        $DispoVideoControl = "Disponibilité et état de l'appareil : "
        $DriverInstall = "Nom du pilote de périphérique d'affichage installé : "
        $DWitch_Process = "Processeur : "
        $Enabled = "Statut Info : Activé (3)"
        $Fabr = "Fabriquant : "
        $False = "Faux"
        $FileINF = "Fichier .inf : "
        $Free = "Libre : "
        $FreePhysicalMemory = "Mémoire physique actuellement inutilisée et disponible : "
        $FreeSpaceInPagingFiles = "Mappage dans les fichiers d'échange du système d'exploitation sans provoquer d'autres pages à être échangé :"
        $FreeVirtualMemory = "Mémoire virtuelle actuellement inutilisée et disponible : "
        $HostingBoard_false = "la carte n'est une carte mère, ou une carte de base dans un châssis :  "
        $HostingBoard_true = "la carte est une carte mère, ou une carte de base dans un châssis :  "
        $HotSwappable_false = "le paquet ne peut pas être remplacé à chaud : "
        $HotSwappable_true = "le paquet peut être remplacé à chaud : "
        $IDProcess = "Identifiant du processeur : "
        $Inconnu = "Statut Info : Inconnu (2)"
        $MemVideo = "Taille de la mémoire de la carte vidéo : "
        $Name = "Nom : "
        $NbCoreLogique = "Nombre de Processeurs Logiques : "
        $NbCorePermis = "Nombre de coeurs admis : "
        $NbCoreProcess = "Nombre de coeurs : "
        $NumberOfLicensedUsers = "Nombre de licences utilisateur pour le système d'exploitation. Si illimité, 0 (zéro). Si inconnu, -1 : "
        $NumberOfProcesses = "Nombre de contextes de processus actuellement chargé ou exécuté sur le système d'exploitation : "
        $NumberOfUsers = "Nombre de sessions utilisateur pour lequel le système d'exploitation est le stockage des informations d'état actuellement : "
        $NumSerie = "Numéro de série :"
        $OutputBios_0 = "- Réservé (0)"
        $OutputBios_1 = "- Réservé (1)"
        $OutputBios_10 = "- APM est pris en charge (10)"
        $OutputBios_11 = "- BIOS est actualisable (Flash) (11)"
        $OutputBios_12 = "- Observation du BIOS est autorisé  (12)"
        $OutputBios_13 = "- VL-VESA est pris en charge (13)"
        $OutputBios_14 = "- Support ESCD est disponible (14)"
        $OutputBios_15 = "- Boot from CD est pris en charge (15)"
        $OutputBios_16 = "- Boot sélectionnable est pris en charge (16)"
        $OutputBios_17 = "- BIOS ROM est connectable (17)"
        $OutputBios_18 = "- Boot De PC Card (PCMCIA) est prise en charge (18)"
        $OutputBios_19 = "- EDD (Enhanced Disk Drive) Spécification est prise en charge (19)"
        $OutputBios_2 = "- Inconnu (2)"
        $OutputBios_20 = "- Int 13h - Floppy japonais pour NEC 9800 1.2mb (3,5 \ , 1k octets / secteur, 360 RPM) est pris en charge(20) "
        $OutputBios_21 = "- Int 13h - Floppy japonais pour Toshiba 1.2mb (3,5 \ , 360 RPM) est pris en charge(21) "
        $OutputBios_22 = "- Int 13h - 5,25 \  / 360 KB Floppy services sont pris en charge(22) "
        $OutputBios_23 = "- Int 13h - 5,25 \  / 1.2MB services Floppy sont pris en charge(23) "
        $OutputBios_24 = "- Int 13h - 3,5 \  / 720 KB Floppy services sont pris en charge(24) "
        $OutputBios_25 = "- Int 13h - 3,5 \  / 2.88 MB Floppy services sont pris en charge(25) "
        $OutputBios_26 = "- Int 5h, service d' impression écran est prise en charge (26)"
        $OutputBios_27 = "- Int 9H, 8042 services de clavier sont pris en charge (27)"
        $OutputBios_28 = "- Int 14h, services de série sont pris en charge (28)"
        $OutputBios_29 = "- Int 17h, les services d'impression sont pris en charge (29)"
        $OutputBios_3 = "- BIOS Caractéristiques non pris en charge (3)"
        $OutputBios_30 = "- Int 10h, CGA / Mono services vidéo sont pris en charge (30)"
        $OutputBios_31 = "- NEC PC-98 (31)"
        $OutputBios_32 = "- ACPI pris en charge (32)"
        $OutputBios_33 = "- Legacy USB est prise en charge (33)"
        $OutputBios_34 = "- AGP est prise en charge (34)"
        $OutputBios_35 = "- I2O boot est prise en charge (35)"
        $OutputBios_36 = "- LS-120 boot est prise en charge (36)"
        $OutputBios_37 = "- ATAPI lecteur ZIP boot est pris en charge (37)"
        $OutputBios_38 = "- 1394 boot est pris en charge (38)"
        $OutputBios_39 = "- Smart Battery prise en charge (39)"
        $OutputBios_4 = "- ISA est pris en charge (4)"
        $OutputBios_40_47 = "- Réservé aux fournisseurs de BIOS (40 - 47)"
        $OutputBios_48_63 = "- Réservé aux fournisseurs Système (48 - 63)"
        $OutputBios_5 = "- MCA est pris en charge (5)"
        $OutputBios_6 = "- EISA est pris en charge (6)"
        $OutputBios_7 = "- PCI est pris en charge (7)"
        $OutputBios_8 = "- PC Card (PCMCIA) est pris en charge (8)"
        $OutputBios_9 = "- Plug and Play est pris en charge (9)"
        $OutputProc_1 = "Autres (1)"
        $OutputProc_2 = "Inconnu (2)"
        $OutputProc_3 = "Processeur central (3)"
        $OutputProc_4 = "Math Processeur (4)"
        $OutputProc_5 = "DSP Processeur (5)"
        $OutputProc_6 = "Processeur vidéo (6)"
        $ProcVirtuel = "Le firmware a permis les extensions de virtualisation : "
        $ProcVirtuelNot = "Le firmware n'est pas permis pour les extensions de virtualisation : "
        $Produit = "Produit : "
        $Proprio = "Propriètaire : "
        $Reference = "Référence : "
        $Removable_false = "L'emballage physique n'est pas amovible : "
        $Removable_true = "L'emballage physique est amovible : "
        $Replaceable_false = "Paquet physique non remplaçable : "
        $Replaceable_true = "Paquet physique remplaçable : "
        $Sansobjet = "Statut Info : Sans objet (5)"
        $SMBIOS_NDispo = "SMBIOS Non disponible : "
        $SMBIOS_VSysMesure = "SMBIOS : Version du système de mesure : "
        $SortieWMI_BaseBoard = "Sortie WMI : Aucun objets WMI trouvés pour la Classe : Win32_BaseBoard"
        $SortieWMI_Bios = "Sortie WMI : Aucun objets WMI trouvés pour la Classe : Win32_BIOS"
        $SortieWMI_OperatingSystem = "Sortie WMI : Aucun objets WMI trouvés pour la Classe : Win32_OperatingSystem"
        $SortieWMI_PhysicalMemory = "Sortie WMI : Aucun objets WMI trouvés pour la Classe : PhysicalMemory"
        $SortieWMI_Proc = "Sortie WMI : Aucun objets WMI trouvés pour la Classe : Win32_Processor"
        $SortieWMI_Video = "Sortie WMI : Aucun objets WMI trouvés pour la Classe : Win32_VideoController"
        $SortieWMIRF = "Sortie WMI refusée"
        $Speed = "Vitesse mémoire : "
        $Statut = "Statut : "
        $SWMI = " Sortie WMI pour la classe : "
        $True = "Vrai"
        $TypeProcess = "Type du processeur : "
        $Used = "Utilisée : "
        $VersBoard = "Version : "
        $VideoMemoryType = "Type de mémoire vidéo : "
        $WMProcess = "le processeur prend en charge les machines virtuelles pour Intel ou AMD Virtual Machine Monitor extensions : "
        $WMProcessInfo = "Information : Cette propriété n'est pas supportée avant Windows 8 et Windows Serveur 2012. "
EndSelect

Select
    Case $SLANGUE = "Anglais"
        $CMECWIN32 = "Win32 Configuration Manager error code : "
        $Accelerateur3D = "3D Accelerator (3)"
        $AccelerateurGraph = "Graphics Accelerator (2)"
        $ArchVideo = "Type of video architecture. : "
        $Autre = "Other : "
        $Autres = "Status Info : Other  (1)"
        $Availability10 = "Degraded (10)"
        $Availability11 = "Not Installed (11)"
        $Availability12 = "Install Error (12)"
        $Availability13 = "Power Save - Unknown (13)"
        $Availability14 = "Power Save - Low Power Mode (14)"
        $Availability15 = "Power Save - Standby (15)"
        $Availability16 = "Power Cycle (16)"
        $Availability17 = "Power Save - Warning (17)"
        $Availability18 = "Paused (18)"
        $Availability19 = "Paused (18)"
        $Availability20 = "Not Configured (20)"
        $Availability21 = "Quiesced (21)"
        $Availability3 = "Running/Full Power (3)"
        $Availability4 = "Warning (4)"
        $Availability5 = "DIn Test (5)"
        $Availability6 = "Not Applicable (6)"
        $Availability7 = "Power Off (7)"
        $Availability8 = "Off Line (8)"
        $Availability9 = "Off Duty (9)"
        $BBoard_SWMI = " WMI class output for Win32_BaseBoard "
        $Bios = "BIOS : "
        $Bios_Caracteristique = "BIOS Features : "
        $Bios_ELIDepl = "State of the installation software : Déployable (0)"
        $Bios_ELIExectable = "State of the installation software : Executable (2)"
        $Bios_ELIExecution = "State of the installation software : Running  (3)"
        $Bios_ELIInst = "State of the installation software : Installable  (1)"
        $Bios_LangageEdit = "Language Edition : "
        $Bios_NumSerie = "Numéro de série : "
        $Bios_OutOBJ = "No items found for WMI Class :" & "Win32_BIOS"
        $Bios_OutSWMI = "No WMI output for this class"
        $Bios_SMBIOSDispo = "SMBIOS : Available "
        $Capacity = "Capacity : "
        $Caption = "Legend : "
        $CMEC0 = "This device is working properly. (0) "
        $CMEC1 = "This device is not configured correctly. (1) "
        $CMEC10 = "This device cannot start. (10) "
        $CMEC11 = "This device failed. (11) "
        $CMEC12 = "This device cannot find enough free resources that it can use. (12) "
        $CMEC13 = "Windows cannot verify this device's resources. (13) "
        $CMEC14 = "This device cannot work properly until you restart your computer. (14) "
        $CMEC15 = "This device is not working properly because there is probably a re-enumeration problem. (15) "
        $CMEC16 = "Windows cannot identify all the resources this device uses. (16) "
        $CMEC17 = "This device is asking for an unknown resource type. (17) "
        $CMEC18 = "Reinstall the drivers for this device. (18) "
        $CMEC19 = "Failure using the VxD loader. (19) "
        $CMEC2 = "Windows cannot load the driver for this device. (2) "
        $CMEC20 = "Your registry might be corrupted. (20) "
        $CMEC21 = "System failure: Try changing the driver for this device. If that does not work, see your hardware documentation. Windows is removing this device. (21) "
        $CMEC22 = "This device is disabled. (22) "
        $CMEC23 = "System failure: Try changing the driver for this device. If that doesn't work, see your hardware documentation. (23) "
        $CMEC24 = "This device is not present, is not working properly, or does not have all its drivers installed. (24) "
        $CMEC25 = "Windows is still setting up this device. (25) "
        $CMEC26 = "Windows is still setting up this device. (26) "
        $CMEC27 = "This device does not have valid log configuration. (27) "
        $CMEC28 = "The drivers for this device are not installed. (28) "
        $CMEC29 = "This device is disabled because the firmware of the device did not give it the required resources. (29) "
        $CMEC3 = "The driver for this device might be corrupted, or your system may be running low on memory or other resources. (3) "
        $CMEC30 = "This device is using an Interrupt Request (IRQ) resource that another device is using. (30) "
        $CMEC31 = "This device is not working properly because Windows cannot load the drivers required for this device. (31) "
        $CMEC4 = "This device is not working properly. One of its drivers or your registry might be corrupted. (4) "
        $CMEC5 = "The driver for this device needs a resource that Windows cannot manage. (5) "
        $CMEC6 = "The boot configuration for this device conflicts with other devices. (6) "
        $CMEC7 = "Cannot filter. (7) "
        $CMEC8 = "The driver loader for the device is missing. (8) "
        $CMEC9 = "This device is not working properly because the controlling firmware is reporting the resources for the device incorrectly. (9) "
        $ConfigOption = "Config Options: "
        $ConfigUserVideo = "Configuration définie par l' utilisateur : "
        $ControlVideo = "Capabilities of the video controller : "
        $CurrentBitsPerPixel = "Number of bits used to display each pixel : "
        $CurrentRefreshRate = "Frequency at which the video controller refreshes the image : "
        $DeviceID = "Reference of the device : "
        $Disabled = "Status Info : Disabled  (4)"
        $DispoVideoControl = "Availability and status of the device : "
        $DriverInstall = "Name of the installed display device driver : "
        $DWitch_Process = "Processor : "
        $Enabled = "Status Info : Enabled  (3)"
        $Fabr = "Manufacturer : "
        $FileINF = "File .inf : "
        $Free = "Free : "
        $FreePhysicalMemory = "Number, in GB, of physical memory currently unused and available : "
        $FreeSpaceInPagingFiles = "Number, in GB, that can be mapped into the operating system paging files without causing any other pages to be swapped out : "
        $FreeVirtualMemory = "Number, in GB, of virtual memory currently unused and available : "
        $HostingBoard_false = "The card is not a motherboard, or a baseboard in a chassis : "
        $HostingBoard_true = "The card is a motherboard, or a baseboard in a chassis : "
        $HotSwappable_false = "The packet can not be hot-swapped : "
        $HotSwappable_true = "The package can be hot-swapped : "
        $IDProcess = "Processor Id : "
        $Inconnu = "Status Info : Unknown  (2)"
        $MemVideo = "Memory size of the video adapter : "
        $Name = "Name : "
        $NbCoreLogique = "Number Of Logical Processors : "
        $NbCorePermis = "Number Of Enabled Core : "
        $NbCoreProcess = "Number Of Cores : "
        $NumberOfLicensedUsers = "Number of user licenses for the operating system. If unlimited, enter 0 (zero). If unknown, enter -1 : "
        $NumberOfProcesses = "Number of process contexts currently loaded or running on the operating system : "
        $NumberOfUsers = "Number of user sessions for which the operating system is storing state information currently : "
        $NumSerie = "SerialNumber: "
        $OutputBios_0 = "- Reserved  (0)"
        $OutputBios_1 = "- Reserved  (1)"
        $OutputBios_10 = "- APM is supported  (10)"
        $OutputBios_11 = "- BIOS is Upgradeable  (Flash) (11)"
        $OutputBios_12 = "- BIOS shadowing is allowed  (12)"
        $OutputBios_13 = "- VL-VESA is supported (13)"
        $OutputBios_14 = "- ESCD support is available  (14)"
        $OutputBios_15 = "- Boot from CD is supported  (15)"
        $OutputBios_16 = "- Selectable Boot is supported (16)"
        $OutputBios_17 = "- BIOS ROM is socketed (17)"
        $OutputBios_18 = "- Boot From PC Card (PCMCIA) is supported  (18)"
        $OutputBios_19 = "- EDD (Enhanced Disk Drive) Specification is supported  (19)"
        $OutputBios_2 = "- Unknown  (2)"
        $OutputBios_20 = "- Int 13h - Floppy japonais pour NEC 9800 1.2mb (3,5 \ , 1k octets / secteur, 360 RPM) is supported (20) "
        $OutputBios_21 = "- Int 13h - Floppy japonais pour Toshiba 1.2mb (3,5 \ , 360 RPM) is supported (21) "
        $OutputBios_22 = "- Int 13h - 5,25 \  / 360 KB Floppy Services are supported (22) "
        $OutputBios_23 = "- Int 13h - 5,25 \  / 1.2MB Floppy Services are supported (23) "
        $OutputBios_24 = "- Int 13h - 3,5 \  / 720 KB Floppy Services are supported (24) "
        $OutputBios_25 = "- Int 13h - 3,5 \  / 2.88 MB Floppy Services are supported (25) "
        $OutputBios_26 = "- Int 5h, Print Screen Service is supported (26)"
        $OutputBios_27 = "- Int 9h, 8042 Keyboard services are supported (27)"
        $OutputBios_28 = "- Int 14h, Serial Services are supported (28)"
        $OutputBios_29 = "- Int 17h, printer services are supported (29)"
        $OutputBios_3 = "- BIOS Characteristics Not Supported (3)"
        $OutputBios_30 = "- Int 10h, CGA/Mono Video Services are supported (30)"
        $OutputBios_31 = "- NEC PC-98 (31)"
        $OutputBios_32 = "- ACPI supported (32)"
        $OutputBios_33 = "- Legacy USB is supported (33)"
        $OutputBios_34 = "- AGP is supported (34)"
        $OutputBios_35 = "- I2O boot is supported (35)"
        $OutputBios_36 = "- LS-120 boot is supported (36)"
        $OutputBios_37 = "- ATAPI ZIP Drive boot is supported (37)"
        $OutputBios_38 = "- 1394 boot is supported (38)"
        $OutputBios_39 = "- Smart Battery supported (39)"
        $OutputBios_4 = "- ISA is supported  (4)"
        $OutputBios_40_47 = "- Reserved for BIOS vendor (40 - 47)"
        $OutputBios_48_63 = "- Reserved for system vendor (48 - 63)"
        $OutputBios_5 = "- MCA is supported  (5)"
        $OutputBios_6 = "- EISA is supported  (6)"
        $OutputBios_7 = "- PCI is supported  (7)"
        $OutputBios_8 = "- PC Card (PCMCIA) is supported  (8)"
        $OutputBios_9 = "- Plug and Play is supported  (9)"
        $OutputProc_1 = "Other (1)"
        $OutputProc_2 = "Unknown (2)"
        $OutputProc_3 = "Central Processor (3)"
        $OutputProc_4 = "Math Processor (4)"
        $OutputProc_5 = "DSP Processor (5)"
        $OutputProc_6 = "Video Processor (6)"
        $ProcVirtuel = "The Firmware has enabled virtualization extensions : "
        $ProcVirtuelNot = "Le Firmware has not enabled virtualization extensions : "
        $Produit = "Product : "
        $Proprio = "Proprietary : "
        $Reference = "PartNumber : "
        $Removable_false = "package is not removable : "
        $Removable_true = "Package is removable : "
        $Replaceable_false = "Package is not removable : "
        $Replaceable_true = "Package is removable : "
        $Sansobjet = "Status Info : Not Applicable (5)"
        $SMBIOS_NDispo = "SMBIOS Not available : "
        $SMBIOS_VSysMesure = "Version of the measuring system : "
        $SortieWMIRF = "WMI exit denied"
        $SortieWMI_BaseBoard = "WMI Released: No WMI items found for the class: Win32_BaseBoard"
        $SortieWMI_Bios = "WMI Released: No WMI items found for the class: Win32_BIOS"
        $SortieWMI_OperatingSystem = "WMI Released: No WMI items found for the class: Win32_OperatingSystem"
        $SortieWMI_PhysicalMemory = "WMI Released: No WMI items found for the class: PhysicalMemory"
        $SortieWMI_Proc = "WMI Released: No WMI items found for the class: Win32_Processor"
        $SortieWMI_Video = "WMI Released: No WMI items found for the class: Win32_VideoController"
        $Speed = "Speed : "
        $Statut = "Status : "
        $SWMI = " WMI class output for : "
        $TypeProcess = "Processor Type : "
        $Used = "Used : "
        $VersBoard = "Version: "
        $VideoMemoryType = "Type of video memory : "
        $WMProcess = "The processor supports Intel or AMD Virtual Machine Monitor extensions. : "
        $WMProcessInfo = "Information : This property is not supported before Windows 8 and Windows Server 2012"
EndSelect

 If @OSVersion > "WIN_VISTA" and "WIN_2008" Then
 MsgBox(0, "WMI Hardwares", "Vista ou Windows Server 2008 minimum")
EndIf


#cs ----------------------------------------------------------------------------
     Win32_BIOS class
    _Win32_BIOS()

     Functions: _WinClaasOperatingSystem()
    _OperatingSystem()
    _FreeMem()

    "BootDevice: " & $objItem.BootDevice & @CRLF
    "BuildNumber: " & $objItem.BuildNumber & @CRLF
    "BuildType: " & $objItem.BuildType & @CRLF
    "Caption: " & $objItem.Caption & @CRLF
    "CodeSet: " & $objItem.CodeSet & @CRLF
    "CountryCode: " & $objItem.CountryCode & @CRLF
    "CreationClassName: " & $objItem.CreationClassName & @CRLF
    "CSCreationClassName: " & $objItem.CSCreationClassName & @CRLF
    "CSDVersion: " & $objItem.CSDVersion & @CRLF
    "CSName: " & $objItem.CSName & @CRLF
    "CurrentTimeZone: " & $objItem.CurrentTimeZone & @CRLF
    "DataExecutionPrevention_32BitApplications: " & $objItem.DataExecutionPrevention_32BitApplications & @CRLF
    "DataExecutionPrevention_Available: " & $objItem.DataExecutionPrevention_Available & @CRLF
    "DataExecutionPrevention_Drivers: " & $objItem.DataExecutionPrevention_Drivers & @CRLF
    "DataExecutionPrevention_SupportPolicy: " & $objItem.DataExecutionPrevention_SupportPolicy & @CRLF
    "Debug: " & $objItem.Debug & @CRLF
    "Description: " & $objItem.Description & @CRLF
    "Distributed: " & $objItem.Distributed & @CRLF
    "EncryptionLevel: " & $objItem.EncryptionLevel & @CRLF
    "ForegroundApplicationBoost: " & $objItem.ForegroundApplicationBoost & @CRLF
    "FreePhysicalMemory: " & $objItem.FreePhysicalMemory & @CRLF
    "FreeSpaceInPagingFiles: " & $objItem.FreeSpaceInPagingFiles & @CRLF
    "FreeVirtualMemory: " & $objItem.FreeVirtualMemory & @CRLF
    "InstallDate: " & WMIDateStringToDate($objItem.InstallDate) & @CRLF
    "LargeSystemCache: " & $objItem.LargeSystemCache & @CRLF
    "LastBootUpTime: " & WMIDateStringToDate($objItem.LastBootUpTime) & @CRLF
    "LocalDateTime: " & WMIDateStringToDate($objItem.LocalDateTime) & @CRLF
    "Locale: " & $objItem.Locale & @CRLF
    "Manufacturer: " & $objItem.Manufacturer & @CRLF
    "MaxNumberOfProcesses: " & $objItem.MaxNumberOfProcesses & @CRLF
    "MaxProcessMemorySize: " & $objItem.MaxProcessMemorySize & @CRLF
      $strMUILanguages = $objItem.MUILanguages(0)
    "MUILanguages: " & $strMUILanguages & @CRLF
    "Name: " & $objItem.Name & @CRLF
    "NumberOfLicensedUsers: " & $objItem.NumberOfLicensedUsers & @CRLF
    "NumberOfProcesses: " & $objItem.NumberOfProcesses & @CRLF
    "NumberOfUsers: " & $objItem.NumberOfUsers & @CRLF
    "OperatingSystemSKU: " & $objItem.OperatingSystemSKU & @CRLF
    "Organization: " & $objItem.Organization & @CRLF
    "OSArchitecture: " & $objItem.OSArchitecture & @CRLF
    "OSLanguage: " & $objItem.OSLanguage & @CRLF
    "OSProductSuite: " & $objItem.OSProductSuite & @CRLF
    "OSType: " & $objItem.OSType & @CRLF
    "OtherTypeDescription: " & $objItem.OtherTypeDescription & @CRLF
    "PAEEnabled: " & $objItem.PAEEnabled & @CRLF
    "PlusProductID: " & $objItem.PlusProductID & @CRLF
    "PlusVersionNumber: " & $objItem.PlusVersionNumber & @CRLF
    "PortableOperatingSystem: " & $objItem.PortableOperatingSystem & @CRLF
    "Primary: " & $objItem.Primary & @CRLF
    "ProductType: " & $objItem.ProductType & @CRLF
    "RegisteredUser: " & $objItem.RegisteredUser & @CRLF
    "SerialNumber: " & $objItem.SerialNumber & @CRLF
    "ServicePackMajorVersion: " & $objItem.ServicePackMajorVersion & @CRLF
    "ServicePackMinorVersion: " & $objItem.ServicePackMinorVersion & @CRLF
    "SizeStoredInPagingFiles: " & $objItem.SizeStoredInPagingFiles & @CRLF
    "Status: " & $objItem.Status & @CRLF
    "SuiteMask: " & $objItem.SuiteMask & @CRLF
    "SystemDevice: " & $objItem.SystemDevice & @CRLF
    "SystemDirectory: " & $objItem.SystemDirectory & @CRLF
    "SystemDrive: " & $objItem.SystemDrive & @CRLF
    "TotalSwapSpaceSize: " & $objItem.TotalSwapSpaceSize & @CRLF
    "TotalVirtualMemorySize: " & $objItem.TotalVirtualMemorySize & @CRLF
    "TotalVisibleMemorySize: " & $objItem.TotalVisibleMemorySize & @CRLF
    "Version: " & $objItem.Version & @CRLF
    "WindowsDirectory: " & $objItem.WindowsDirectory & @CRLF
#ce ----------------------------------------------------------------------------

;~ _OperatingSystem()

Func _WinClaasOperatingSystem()
    $objWMIService = ObjGet("winmgmts:{impersonationLevel=impersonate}!\\" & $strComputer & "\root\CIMV2")
    $colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_OperatingSystem", "WQL", 0x10 + 0x20)
EndFunc   ;==>WinClaasOperatingSystem

Func _OperatingSystem()
    _WinClaasOperatingSystem()
    If IsObj($colItems) Then
        Local $Object_Flag = 0
        For $objItem In $colItems
            $Object_Flag = 1
            $Output &= $SWMI & "Win32_OperatingSystem" & @CRLF
            $Output &= "-----------------------------------------" & @CRLF & @CRLF
            $Output &= $Name & $objItem.Name & @CRLF
            $Output &= "OS Architecture : " & $objItem.OSArchitecture & @CRLF
            $Output &= $Fabr & $objItem.Manufacturer & @CRLF
            Local $strMUILanguages = $objItem.MUILanguages(0)
            $Output &= "MUI Languages : " & $strMUILanguages & @CRLF
            $Output &= "Version : " & $objItem.Version & @CRLF
            $Output &= "SystemDrive : " & $objItem.SystemDrive & @CRLF
            $Output &= "-----------------------------------------" & @CRLF & @CRLF
            _FreeMem()
            $Output &= "-----------------------------------------" & @CRLF & @CRLF
            $Output &= $NumberOfLicensedUsers & $objItem.NumberOfLicensedUsers & @CRLF
            $Output &= $NumberOfProcesses & $objItem.NumberOfProcesses & @CRLF
            $Output &= $NumberOfUsers & $objItem.NumberOfUsers & @CRLF
            If $Object_Flag = 0 Then $Output &= $SortieWMIRF & $OutputTitle & @CRLF
            If $Output = "" Then $Output &= $SortieWMI_OperatingSystem & @CRLF
            If MsgBox(64, "", $Output) = 2 Then ExitLoop
        Next
    EndIf
EndFunc   ;==>_OperatingSystem

Func _FreeMem()
    _WinClaasOperatingSystem()
    For $objItem In $colItems
        $FPMem = $objItem.FreePhysicalMemory / 1024 ^ 2
        $ResutFreePhyMem = StringLeft($FPMem, 5)
        $Output &= $FreePhysicalMemory & $ResutFreePhyMem & " - GO" & @CRLF
        $FSpacePF = $objItem.FreeSpaceInPagingFiles / 1024 ^ 2
        $ResultFreeSpacePF = StringLeft($FSpacePF, 5)
        $Output &= $FreeSpaceInPagingFiles & $ResultFreeSpacePF & " - GO" & @CRLF
        $FreeVirtualMem = $objItem.FreeVirtualMemory / 1024 ^ 2
        $ResultFreeVirtualMem = StringLeft($FreeVirtualMem, 5)
        $Output &= $FreeVirtualMemory & $ResultFreeVirtualMem & " - GO" & @CRLF
    Next
EndFunc   ;==>FreeMem

#cs ----------------------------------------------------------------------------
     Win32_BIOS class
    _Win32_BIOS()

     Functions: _WinClassesBios()
    _Win32_BIOS()
    _SMBIOSP()
    _BIOS_SoftwareElementState()
    _BIOSCharacteristics()

    $strBiosCharacteristics = $objItem.BiosCharacteristics(0)
    "BiosCharacteristics: " & $strBiosCharacteristics & @CRLF
    $strBIOSVersion = $objItem.BIOSVersion(0)
    "BIOSVersion: " & $strBIOSVersion & @CRLF
    "BuildNumber: " & $objItem.BuildNumber & @CRLF
    "Caption: " & $objItem.Caption & @CRLF
    "CodeSet: " & $objItem.CodeSet & @CRLF
    "CurrentLanguage: " & $objItem.CurrentLanguage & @CRLF
    "Description: " & $objItem.Description & @CRLF
    "EmbeddedControllerMajorVersion: " & $objItem.EmbeddedControllerMajorVersion & @CRLF
    "EmbeddedControllerMinorVersion: " & $objItem.EmbeddedControllerMinorVersion & @CRLF
    "IdentificationCode: " & $objItem.IdentificationCode & @CRLF
    "InstallableLanguages: " & $objItem.InstallableLanguages & @CRLF
    "InstallDate: " & WMIDateStringToDate($objItem.InstallDate) & @CRLF
    "LanguageEdition: " & $objItem.LanguageEdition & @CRLF
    $strListOfLanguages = $objItem.ListOfLanguages(0)
    "ListOfLanguages: " & $strListOfLanguages & @CRLF
    "Manufacturer: " & $objItem.Manufacturer & @CRLF
    "Name: " & $objItem.Name & @CRLF
    "OtherTargetOS: " & $objItem.OtherTargetOS & @CRLF
    "PrimaryBIOS: " & $objItem.PrimaryBIOS & @CRLF
    "ReleaseDate: " & WMIDateStringToDate($objItem.ReleaseDate) & @CRLF
    "SerialNumber: " & $objItem.SerialNumber & @CRLF
    "SMBIOSBIOSVersion: " & $objItem.SMBIOSBIOSVersion & @CRLF
    "SMBIOSMajorVersion: " & $objItem.SMBIOSMajorVersion & @CRLF
    "SMBIOSMinorVersion: " & $objItem.SMBIOSMinorVersion & @CRLF
    "SMBIOSPresent: " & $objItem.SMBIOSPresent & @CRLF
    "SoftwareElementID: " & $objItem.SoftwareElementID & @CRLF
    "SoftwareElementState: " & $objItem.SoftwareElementState & @CRLF
    "Status: " & $objItem.Status & @CRLF
    "SystemBiosMajorVersion: " & $objItem.SystemBiosMajorVersion & @CRLF
    "SystemBiosMinorVersion: " & $objItem.SystemBiosMinorVersion & @CRLF
    "TargetOperatingSystem: " & $objItem.TargetOperatingSystem & @CRLF
    "Version: " & $objItem.Version & @CRLF
#ce ----------------------------------------------------------------------------

;~ _BIOS()

Func _WinClassesBios()
    $objWMIService = ObjGet("winmgmts:{impersonationLevel=impersonate}!\\" & $strComputer & "\root\CIMV2")
    $colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_BIOS", "WQL", 0x10 + 0x20)
EndFunc   ;==>_WinClassesBios

Func _BIOS()
    _WinClassesBios()
    If IsObj($colItems) Then
        Local $Object_Flag = 0
        For $objItem In $colItems
            $Object_Flag = 1
            $Output &= $SWMI & "Win32_BIOS" & @CRLF
            $Output &= "-----------------------------------------" & @CRLF & @CRLF
            $Output &= $Bios & $objItem.BIOSVersion(0) & @CRLF
            $Output &= $Bios_LangageEdit & $objItem.CurrentLanguage & @CRLF
            $Output &= $Fabr & $objItem.Manufacturer & @CRLF
            $Output &= $Bios_NumSerie & $objItem.SerialNumber & @CRLF
            _SMBIOSP()
            _BIOS_SoftwareElementState()
            $Output &= $Statut & $objItem.Status & @CRLF & @CRLF
            $Output &= $Bios_Caracteristique & @CRLF
            $Output &= "-------------------------" & @CRLF
            _BIOSCharacteristics()
            If $Object_Flag = 0 Then $Output &= $SortieWMIRF & $OutputTitle & @CRLF
            If $Output = "" Then $Output &= $SortieWMI_Bios & @CRLF
            If MsgBox(64, "", $Output) = 2 Then ExitLoop
        Next
    EndIf
EndFunc   ;==>_BIOS

Func _SMBIOSP()
    _WinClassesBios()
    For $objItem In $colItems
        Local $SMBIOS = $objItem.SMBIOSPresent
        If $SMBIOS = 1 Then
            $Output &= $Bios_SMBIOSDispo & @CRLF
            $Output &= $SMBIOS_VSysMesure & $objItem.SMBIOSBIOSVersion & @CRLF
        Else
            $Output &= $SMBIOS_NDispo & $objItem.SMBIOSPresent & @CRLF
        EndIf
    Next
EndFunc   ;==>_SMBIOSP

Func _BIOS_SoftwareElementState()
    _WinClassesBios()
    For $objItem In $colItems
        Local $SoftwareElementState = $objItem.SoftwareElementState
        Switch $SoftwareElementState
            Case 0
                $Output &= $Bios_ELIDepl & @CRLF
            Case 1
                $Output &= $Bios_ELIInst & @CRLF
            Case 2
                $Output &= $Bios_ELIExectable & @CRLF
            Case 3
                $Output &= $Bios_ELIExecution & @CRLF
        EndSwitch
    Next
EndFunc   ;==>_BIOS_SoftwareElementState

Func _BIOSCharacteristics()
    _WinClassesBios()
    For $objItem In $colItems
        Local $strBiosCharacteristics = $objItem.BiosCharacteristics
        For $Bios_Cr In $strBiosCharacteristics
            Switch $Bios_Cr
                Case 0
                    $Output &= $OutputBios_0 & @CRLF
                Case 1
                    $Output &= $OutputBios_1 & @CRLF
                Case 2
                    $Output &= $OutputBios_2 & @CRLF
                Case 3
                    $Output &= $OutputBios_3 & @CRLF
                Case 4
                    $Output &= $OutputBios_4 & @CRLF
                Case 5
                    $Output &= $OutputBios_5 & @CRLF
                Case 6
                    $Output &= $OutputBios_6 & @CRLF
                Case 7
                    $Output &= $OutputBios_7 & @CRLF
                Case 8
                    $Output &= $OutputBios_8 & @CRLF
                Case 9
                    $Output &= $OutputBios_9 & @CRLF
                Case 10
                    $Output &= $OutputBios_10 & @CRLF
                Case 11
                    $Output &= $OutputBios_11 & @CRLF
                Case 12
                    $Output &= $OutputBios_12 & @CRLF
                Case 13
                    $Output &= $OutputBios_13 & @CRLF
                Case 14
                    $Output &= $OutputBios_14 & @CRLF
                Case 15
                    $Output &= $OutputBios_15 & @CRLF
                Case 16
                    $Output &= $OutputBios_16 & @CRLF
                Case 17
                    $Output &= $OutputBios_17 & @CRLF
                Case 18
                    $Output &= $OutputBios_18 & @CRLF
                Case 19
                    $Output &= $OutputBios_19 & @CRLF
                Case 20
                    $Output &= $OutputBios_20 & @CRLF
                Case 21
                    $Output &= $OutputBios_21 & @CRLF
                Case 22
                    $Output &= $OutputBios_22 & @CRLF
                Case 23
                    $Output &= $OutputBios_23 & @CRLF
                Case 24
                    $Output &= $OutputBios_24 & @CRLF
                Case 25
                    $Output &= $OutputBios_25 & @CRLF
                Case 26
                    $Output &= $OutputBios_26 & @CRLF
                Case 27
                    $Output &= $OutputBios_27 & @CRLF
                Case 28
                    $Output &= $OutputBios_28 & @CRLF
                Case 29
                    $Output &= $OutputBios_29 & @CRLF
                Case 30
                    $Output &= $OutputBios_30 & @CRLF
                Case 31
                    $Output &= $OutputBios_31 & @CRLF
                Case 32
                    $Output &= $OutputBios_32 & @CRLF
                Case 33
                    $Output &= $OutputBios_33 & @CRLF
                Case 34
                    $Output &= $OutputBios_34 & @CRLF
                Case 35
                    $Output &= $OutputBios_35 & @CRLF
                Case 36
                    $Output &= $OutputBios_36 & @CRLF
                Case 37
                    $Output &= $OutputBios_37 & @CRLF
                Case 38
                    $Output &= $OutputBios_38 & @CRLF
                Case 39
                    $Output &= $OutputBios_39 & @CRLF
                Case 40 To 47
                    $Output &= $OutputBios_40_47 & @CRLF
                Case 48 To 63
                    $Output &= $OutputBios_48_63 & @CRLF
            EndSwitch
        Next
    Next

EndFunc   ;==>_BIOSCharacteristics

#cs ----------------------------------------------------------------------------
     Win32_BaseBoard class
    _BaseBoard()

     Functions: _WinClassesBaseBoard()
    _BaseBoard()
    _HostingBoard()
    _HotSwappable()
    _Removable()
    _Replaceable()

    $$Output &= "Caption: " & $objItem.Caption & @CRLF
    $strConfigOptions = $objItem.ConfigOptions(0)
    "ConfigOptions: " & $strConfigOptions & @CRLF
    "CreationClassName: " & $objItem.CreationClassName & @CRLF
    "Depth: " & $objItem.Depth & @CRLF
    "Description: " & $objItem.Description & @CRLF
    "Height: " & $objItem.Height & @CRLF
    "HostingBoard: " & $objItem.HostingBoard & @CRLF
    "HotSwappable: " & $objItem.HotSwappable & @CRLF
    "InstallDate: " & WMIDateStringToDate($objItem.InstallDate) & @CRLF
    "Manufacturer: " & $objItem.Manufacturer & @CRLF
    "Model: " & $objItem.Model & @CRLF
    "Name: " & $objItem.Name & @CRLF
    "OtherIdentifyingInfo: " & $objItem.OtherIdentifyingInfo & @CRLF
    "PartNumber: " & $objItem.PartNumber & @CRLF
    "PoweredOn: " & $objItem.PoweredOn & @CRLF
    "Product: " & $objItem.Product & @CRLF
    "Removable: " & $objItem.Removable & @CRLF
    "Replaceable: " & $objItem.Replaceable & @CRLF
    "RequirementsDescription: " & $objItem.RequirementsDescription & @CRLF
    "RequiresDaughterBoard: " & $objItem.RequiresDaughterBoard & @CRLF
    "SerialNumber: " & $objItem.SerialNumber & @CRLF
    "SKU: " & $objItem.SKU & @CRLF
    "SlotLayout: " & $objItem.SlotLayout & @CRLF
    "SpecialRequirements: " & $objItem.SpecialRequirements & @CRLF
    "Status: " & $objItem.Status & @CRLF
    "Tag: " & $objItem.Tag & @CRLF
    "Version: " & $objItem.Version & @CRLF
    "Weight: " & $objItem.Weight & @CRLF
    "Width: " & $objItem.Width & @CRLF
#ce ----------------------------------------------------------------------------

;~ _BaseBoard()

Func _WinClassesBaseBoard()
    $objWMIService = ObjGet("winmgmts:{impersonationLevel=impersonate}!\\" & $strComputer & "\root\CIMV2")
    $colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_BaseBoard", "WQL", 0x10 + 0x20)
EndFunc   ;==>_WinClassesBaseBoard

Func _BaseBoard()
    _WinClassesBaseBoard()
    If IsObj($colItems) Then
        Local $Object_Flag = 0
        For $objItem In $colItems
            $Object_Flag = 1
            $Output &= $SWMI & "Win32_BaseBoard" & @CRLF
            $Output &= "------------------------------------------------" & @CRLF & @CRLF
            $Output &= $Produit & $objItem.Product & @CRLF
            $Output &= $Fabr & $objItem.Manufacturer & @CRLF
            $Output &= $Caption & $objItem.Caption & @CRLF
            Local $strConfigOptions = $objItem.ConfigOptions(0)
            $Output &= $ConfigOption & $strConfigOptions & @CRLF
            $Output &= $VersBoard & $objItem.Version & @CRLF
            $Output &= $Statut & $objItem.Status & @CRLF
            $Output &= "-----------------------------------------" & @CRLF
            _HostingBoard()
            _HotSwappable()
            $Output &= "-----------------------------------------" & @CRLF
            _Removable()
            _Replaceable()
            If $Object_Flag = 0 Then $Output &= $SortieWMIRF & $OutputTitle & @CRLF
            If $Output = "" Then $Output &= $SortieWMI_BaseBoard & @CRLF
            If MsgBox(64, "", $Output) = 2 Then ExitLoop
        Next
    EndIf
EndFunc   ;==>_BaseBoard

Func _HostingBoard()
    _WinClassesBaseBoard()
    For $objItem In $colItems
        Local $HostingBoard = $objItem.HostingBoard
        If $HostingBoard = 1 Then
            $Output &= $HostingBoard_true & "(HostingBoard) : " & $objItem.HostingBoard & @CRLF
        Else
            $Output &= $HostingBoard_false & "(HostingBoard) : " & $objItem.HostingBoard & @CRLF
        EndIf
    Next
EndFunc   ;==>_HostingBoard

Func _HotSwappable()
    _WinClassesBaseBoard()
    For $objItem In $colItems
        Local $HotSwappable = $objItem.HotSwappable
        If $HotSwappable = 1 Then
            $Output &= $HotSwappable_true & "(HotSwappable) : " & $objItem.HotSwappable & @CRLF
        Else
            $Output &= $HotSwappable_false & "(HotSwappable) : " & $objItem.HotSwappable & @CRLF
        EndIf
    Next
EndFunc   ;==>_HotSwappable

Func _Removable()
    _WinClassesBaseBoard()
    For $objItem In $colItems
        Local $Removable = $objItem.Removable
        If $Removable = 1 Then
            $Output &= $Removable_true & "(Removable) :  " & $objItem.Removable & @CRLF
        Else
            $Output &= $Removable_false & "(Removable) :  " & $objItem.Removable & @CRLF
        EndIf
    Next
EndFunc   ;==>_Removable

Func _Replaceable()
    _WinClassesBaseBoard()
    For $objItem In $colItems
        Local $Replaceable = $objItem.Replaceable
        If $Replaceable = 1 Then
            $Output &= $Replaceable_true & "(Replaceable) :  " & $objItem.Replaceable & @CRLF
        Else
            $Output &= $Replaceable_false & "(Replaceable) :  " & $objItem.Replaceable & @CRLF
        EndIf
    Next
EndFunc   ;==>_Replaceable

#cs ----------------------------------------------------------------------------
    Win32_Processor class
    Processor()

    Functions:  _WinClassesProcessor()
    _Processor()
    _TypeProc()
    _VirtualProcess()
    _VMVirtualProcess()
    _StatuIfoProc()

    $Output &= "AddressWidth: " & $objItem.AddressWidth & @CRLF
    "Architecture: " & $objItem.Architecture & @CRLF
    "AssetTag: " & $objItem.AssetTag & @CRLF
    "Availability: " & $objItem.Availability & @CRLF
    "Caption: " & $objItem.Caption & @CRLF
    "Characteristics: " & $objItem.Characteristics & @CRLF
    "ConfigManagerErrorCode: " & $objItem.ConfigManagerErrorCode & @CRLF
    "ConfigManagerUserConfig: " & $objItem.ConfigManagerUserConfig & @CRLF
    "CpuStatus: " & $objItem.CpuStatus & @CRLF
    "CreationClassName: " & $objItem.CreationClassName & @CRLF
    "CurrentClockSpeed: " & $objItem.CurrentClockSpeed & @CRLF
    "CurrentVoltage: " & $objItem.CurrentVoltage & @CRLF
    "DataWidth: " & $objItem.DataWidth & @CRLF
    "Description: " & $objItem.Description & @CRLF
    "DeviceID: " & $objItem.DeviceID & @CRLF
    "ErrorCleared: " & $objItem.ErrorCleared & @CRLF
    "ErrorDescription: " & $objItem.ErrorDescription & @CRLF
    "ExtClock: " & $objItem.ExtClock & @CRLF
    "Family: " & $objItem.Family & @CRLF
    "InstallDate: " & WMIDateStringToDate($objItem.InstallDate) & @CRLF
    "L2CacheSize: " & $objItem.L2CacheSize & @CRLF
    "L2CacheSpeed: " & $objItem.L2CacheSpeed & @CRLF
    "L3CacheSize: " & $objItem.L3CacheSize & @CRLF
    "L3CacheSpeed: " & $objItem.L3CacheSpeed & @CRLF
    "LastErrorCode: " & $objItem.LastErrorCode & @CRLF
    "Level: " & $objItem.Level & @CRLF
    "LoadPercentage: " & $objItem.LoadPercentage & @CRLF
    "Manufacturer: " & $objItem.Manufacturer & @CRLF
    "MaxClockSpeed: " & $objItem.MaxClockSpeed & @CRLF
    "Name: " & $objItem.Name & @CRLF
    "NumberOfCores: " & $objItem.NumberOfCores & @CRLF
    "NumberOfEnabledCore: " & $objItem.NumberOfEnabledCore & @CRLF
    "NumberOfLogicalProcessors: " & $objItem.NumberOfLogicalProcessors & @CRLF
    "OtherFamilyDescription: " & $objItem.OtherFamilyDescription & @CRLF
    "PartNumber: " & $objItem.PartNumber & @CRLF
    "PNPDeviceID: " & $objItem.PNPDeviceID & @CRLF
    $strPowerManagementCapabilities = $objItem.PowerManagementCapabilities(0)
    "PowerManagementCapabilities: " & $strPowerManagementCapabilities & @CRLF
    "PowerManagementSupported: " & $objItem.PowerManagementSupported & @CRLF
    "ProcessorId: " & $objItem.ProcessorId & @CRLF
    "ProcessorType: " & $objItem.ProcessorType & @CRLF
    "Revision: " & $objItem.Revision & @CRLF
    "Role: " & $objItem.Role & @CRLF
    "SecondLevelAddressTranslationExtensions: " & $objItem.SecondLevelAddressTranslationExtensions & @CRLF
    "SerialNumber: " & $objItem.SerialNumber & @CRLF
    "SocketDesignation: " & $objItem.SocketDesignation & @CRLF
    "Status: " & $objItem.Status & @CRLF
    "StatusInfo: " & $objItem.StatusInfo & @CRLF
    "Stepping: " & $objItem.Stepping & @CRLF
    "SystemCreationClassName: " & $objItem.SystemCreationClassName & @CRLF
    "SystemName: " & $objItem.SystemName & @CRLF
    "ThreadCount: " & $objItem.ThreadCount & @CRLF
    "UniqueId: " & $objItem.UniqueId & @CRLF
    "UpgradeMethod: " & $objItem.UpgradeMethod & @CRLF
    "Version: " & $objItem.Version & @CRLF
    "VirtualizationFirmwareEnabled: " & $objItem.VirtualizationFirmwareEnabled & @CRLF
    "VMMonitorModeExtensions: " & $objItem.VMMonitorModeExtensions & @CRLF
    "VoltageCaps: " & $objItem.VoltageCaps & @CRLF
#ce ----------------------------------------------------------------------------

;~ _Processor()

Func _WinClassesProcessor()
    $objWMIService = ObjGet("winmgmts:{impersonationLevel=impersonate}!\\" & $strComputer & "\root\CIMV2")
    $colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_Processor", "WQL", 0x10 + 0x20)
EndFunc   ;==>_WinClassesProcessor

Func _Processor()
    _WinClassesProcessor()
    If IsObj($colItems) Then
        Local $Object_Flag = 0
        For $objItem In $colItems
            $Object_Flag = 1
            $Output &= $SWMI & "Win32_Processor" & @CRLF
            $Output &= "-----------------------------------------------" & @CRLF & @CRLF
            $Output &= $NamePorcess & $objItem.Name & @CRLF
            $Output &= "Description : " & $objItem.Description & @CRLF
            $Output &= $Fabr & $objItem.Manufacturer & @CRLF
            $Output &= "Role : " & $objItem.Role & @CRLF
            $Output &= "-----------------------------------------------" & @CRLF
            $Output &= $DWitch_Process & " X " & $objItem.DataWidth & @CRLF
            $Output &= $IDProcess & $objItem.ProcessorId & @CRLF
            _TypeProc()
            $Output &= "-----------------------------------------------" & @CRLF
            $Output &= $NbCoreProcess & $objItem.NumberOfCores & @CRLF
            If @OSVersion = "WIN_10" Then ; This property is not supported before Windows Server 2016 Technical Preview and Windows 10.
                $Output &= $NbCorePermis & $objItem.NumberOfEnabledCore & @CRLF
            Else
                $Output &= $NbCorePermis & "? OSVersion < Win 10" & @CRLF
            EndIf
            $Output &= $NbCoreLogique & $objItem.NumberOfLogicalProcessors & @CRLF
            $Output &= "-----------------------------------------------" & @CRLF
            _VirtualFirWareProc()
            _VMVirtualProcess()
            _StatuInfoProc()
            $Output &= $Statut & $objItem.Status & @CRLF
            If $Object_Flag = 0 Then $Output &= $SortieWMIRF & $OutputTitle & @CRLF
            If $Output = "" Then $Output &= $SortieWMI_Proc & @CRLF
            If MsgBox(64, "", $Output) = 2 Then ExitLoop
        Next
    EndIf
EndFunc   ;==>_Processor

Func _TypeProc()
    _WinClassesProcessor()
    For $objItem In $colItems
        Local $ProcessorType = $objItem.ProcessorType
        Switch $ProcessorType
            Case 1
                $Output &= $TypeProcess & $OutputProc_1 & @CRLF
            Case 2
                $Output &= $TypeProcess & $OutputProc_2 & @CRLF
            Case 3
                $Output &= $TypeProcess & $OutputProc_3 & @CRLF
            Case 4
                $Output &= $TypeProcess & $OutputProc_4 & @CRLF
            Case 5
                $Output &= $TypeProcess & $OutputProc_5 & @CRLF
            Case 6
                $Output &= $TypeProcess & $OutputProc_6 & @CRLF
        EndSwitch
    Next
EndFunc   ;==>_TypeProc

Func _VirtualFirWareProc() ; ;~ Windows Server 2008 R2, Windows 7, Windows Server 2008, and Windows Vista:  This property is not supported before Windows 8 and Windows Server 2012.
    _WinClassesProcessor()
    For $objItem In $colItems
        Switch @OSVersion
            Case "WIN_10", "WIN_8.1", "WIN_8", "Win_2008", "WIN_2008R2"
                Local $VirtualizationFirmwareEnabled = $objItem.VirtualizationFirmwareEnabled
                If $VirtualizationFirmwareEnabled = True Then
                    $Output &= $ProcVirtuel & @CRLF
                Else
                    $Output &= $ProcVirtuelNot & @CRLF
                EndIf
            Case Else
                $Output &= $ProcVirtuelNot & @CRLF
        EndSwitch
    Next
EndFunc   ;==>_VirtualFirWareProc

Func _VMVirtualProcess() ; Windows Server 2008 R2, Windows 7, Windows Server 2008, and Windows Vista:  This property is not supported before Windows 8 and Windows Server 2012.
    _WinClassesProcessor()
    For $objItem In $colItems
        Switch @OSVersion
            Case "WIN_10", "WIN_8.1", "WIN_8", "Win_2008", "WIN_2008R2"
                Local $VMMonitorModeExtensions = $objItem.VMMonitorModeExtensions
                If $VMMonitorModeExtensions = 1 Then
                    $Output &= $WMProcess & @CRLF & $WMProcessInfo & @CRLF
                Else
                    $Output &= $WMProcess & @CRLF & $WMProcessInfo & @CRLF
                EndIf
            Case Else
                $Output &= $ProcVirtuelNot & @CRLF
        EndSwitch
    Next
EndFunc   ;==>_VMVirtualProcess

Func _StatuInfoProc()
    _WinClassesProcessor()
    For $objItem In $colItems
        Local $StatusInfo = $objItem.StatusInfo
        Switch $StatusInfo
            Case 1
                $Output &= $Autres & @CRLF
            Case 2
                $Output &= $Inconnu & @CRLF
            Case 3
                $Output &= $Enabled & @CRLF
            Case 4
                $Output &= $Disabled & @CRLF
            Case 5
                $Output &= $Sansobjet & @CRLF
        EndSwitch
    Next
EndFunc   ;==>_StatuInfoProc
;==>WinClassesBaseBoard

#cs ----------------------------------------------------------------------------
    Win32_PhysicalMemory class
    _PhysicalMemory()

    Functions :
    _PhysicalMemory()
    _GETDOSOUTPUT($COMMAND)

    "Access: " & $objItem.Access & @CRLF
    $strAdditionalErrorData = $objItem.AdditionalErrorData(0)
    "AdditionalErrorData: " & $strAdditionalErrorData & @CRLF
    "Availability: " & $objItem.Availability & @CRLF
    "BlockSize: " & $objItem.BlockSize & @CRLF
    "Caption: " & $objItem.Caption & @CRLF
    "ConfigManagerErrorCode: " & $objItem.ConfigManagerErrorCode & @CRLF
    "ConfigManagerUserConfig: " & $objItem.ConfigManagerUserConfig & @CRLF
    "CorrectableError: " & $objItem.CorrectableError & @CRLF
    "CreationClassName: " & $objItem.CreationClassName & @CRLF
    "Description: " & $objItem.Description & @CRLF
    "DeviceID: " & $objItem.DeviceID & @CRLF
    "EndingAddress: " & $objItem.EndingAddress & @CRLF
    "ErrorAccess: " & $objItem.ErrorAccess & @CRLF
    "ErrorAddress: " & $objItem.ErrorAddress & @CRLF
    "ErrorCleared: " & $objItem.ErrorCleared & @CRLF
    $strErrorData = $objItem.ErrorData(0)
    "ErrorData: " & $strErrorData & @CRLF
    "ErrorDataOrder: " & $objItem.ErrorDataOrder & @CRLF
    "ErrorDescription: " & $objItem.ErrorDescription & @CRLF
    "ErrorGranularity: " & $objItem.ErrorGranularity & @CRLF
    "ErrorInfo: " & $objItem.ErrorInfo & @CRLF
    "ErrorMethodology: " & $objItem.ErrorMethodology & @CRLF
    "ErrorResolution: " & $objItem.ErrorResolution & @CRLF
    "ErrorTime: " & WMIDateStringToDate($objItem.ErrorTime) & @CRLF
    "ErrorTransferSize: " & $objItem.ErrorTransferSize & @CRLF
    "Ins    tallDate: " & WMIDateStringToDate($objItem.InstallDate) & @CRLF
    "Las    tErrorCode: " & $objItem.LastErrorCode & @CRLF
    "Name: " & $objItem.Name & @CRLF
    "Num    berOfBlocks: " & $objItem.NumberOfBlocks & @CRLF
    "OtherErrorDescription: " & $objItem.OtherErrorDescription & @CRLF
    "PNPDeviceID: " & $objItem.PNPDeviceID & @CRLF
    $strPowerManagementCapabilities = $objItem.PowerManagementCapabilities(0)
    "PowerManagementCapabilities: " & $strPowerManagementCapabilities & @CRLF
    "PowerManagementSupported: " & $objItem.PowerManagementSupported & @CRLF
    "Purpose: " & $objItem.Purpose & @CRLF
    "StartingAddress: " & $objItem.StartingAddress & @CRLF
    "Status: " & $objItem.Status & @CRLF
    "StatusInfo: " & $objItem.StatusInfo & @CRLF
    "SystemCreationClassName: " & $objItem.SystemCreationClassName & @CRLF
    "SystemLevelAddress: " & $objItem.SystemLevelAddress & @CRLF
    "SystemName: " & $objItem.SystemName & @CRLF $Output &= "Access: " & $objItem.Access & @CRLF
    $strAdditionalErrorData = $objItem.AdditionalErrorData(0)
#ce ----------------------------------------------------------------------------

;~ _PhysicalMemory()
;~  Local $cmd = _GETDOSOUTPUT("wmic MEMORYCHIP get BankLabel,DeviceLocator,Capacity,Tag")
;~  Local $Mem = MemGetStats()
;~  Local $MemTot = Round(($Mem[1]) / 1024 ^ 2)
;~  Local $MemFree = Round(($Mem[2]) / 1024 ^ 2, 2)
;~  Local $MemUtil = $MemTot - $MemFree
;~  $Mem = $Capacity & $MemTot & " GO  -  " & $Free & $MemFree & " GO  -  " & $Used & $MemUtil & " GO" & @CRLF
;~  Local $Tilte = "--------------------------------------------------------" & @CRLF
;~  Local $Tilte1 = $SWMI & "Win32_PhysicalMemory" & @CRLF
;~  Local $Tilte2 = "--------------------------------------------------------" & @CRLF & @CRLF
;~  MsgBox(64, "", $Mem & $Tilte & $Tilte1 & $Tilte2 & $Output & $Tilte & " - CMD - " & @CRLF & $Tilte & @CRLF & $cmd)

Func _PhysicalMemory()
    $objWMIService = ObjGet("winmgmts:{impersonationLevel=impersonate}!\\" & $strComputer & "\root\CIMV2")
    $colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_PhysicalMemory", "WQL", 0x10 + 0x20)
    If IsObj($colItems) Then
        Local $Object_Flag = 0
        For $objItem In $colItems
            Local $FormFactor = $objItem.FormFactor
            Local $MemoryType = $objItem.MemoryType
            $Object_Flag = 1
            $Output &= $Name & $objItem.Name & @CRLF
            $Output &= $Fabr & $objItem.Manufacturer & @CRLF
            $Output &= $Speed & $objItem.Speed & " MHz -  Ref : " & $objItem.PartNumber & @CRLF
            Switch $FormFactor
                Case 0
                    $Output &= $Inconnu & " (0)" & @CRLF
                Case 1
                    $Output &= $Autre & " (1)" & @CRLF
                Case 2
                    $Output &= "SIP" & " (2)" & @CRLF
                Case 3
                    $Output &= "DIP" & " (3)" & @CRLF
                Case 4
                    $Output &= "ZIP" & " (4)" & @CRLF
                Case 5
                    $Output &= "SOJ" & " (5)" & @CRLF
                Case 6
                    $Output &= $Proprio & " (6)" & @CRLF
                Case 7
                    $Output &= "SIMM" & " (7)" & @CRLF
                Case 8
                    $Output &= "DIMM" & " (8)" & @CRLF
                Case 9
                    $Output &= "TSOP" & " (9)" & @CRLF
                Case 10
                    $Output &= "PGA" & " (10)" & @CRLF
                Case 11
                    $Output &= "RIMM" & " (11)" & @CRLF
                Case 12
                    $Output &= "SODIMM" & " (12)" & @CRLF
                Case 13
                    $Output &= "SRIMM" & " (13)" & @CRLF
                Case 14
                    $Output &= "SMD" & " (14)" & @CRLF
                Case 15
                    $Output &= "SSMP" & " (15)" & @CRLF
                Case 16
                    $Output &= "QFP" & " (16)" & @CRLF
                Case 17
                    $Output &= "TQFP" & " (17)" & @CRLF
                Case 18
                    $Output &= "SOIC" & " (18)" & @CRLF
                Case 19
                    $Output &= "LCC" & " (19)" & @CRLF
                Case 20
                    $Output &= "PLCC" & " (20)" & @CRLF
                Case 21
                    $Output &= "BGA" & " (21)" & @CRLF
                Case 22
                    $Output &= "FPBGA" & " (22)" & @CRLF
                Case 23
                    $Output &= "LGA" & " (23)" & @CRLF
            EndSwitch
            Switch $MemoryType
                Case 0
                    $Output &= $Inconnu & " (0)" & @CRLF
                Case 1
                    $Output &= $Autre & " (1)" & @CRLF
                Case 2
                    $Output &= "DRAM (2)" & @CRLF
                Case 3
                    $Output &= "Synchronous DRAM (3)" & @CRLF
                Case 4
                    $Output &= "Cache DRAM (4)" & @CRLF
                Case 5
                    $Output &= "EDO (5)" & @CRLF
                Case 6
                    $Output &= "EDRAM (6)" & @CRLF
                Case 7
                    $Output &= "VRAM (7)" & @CRLF
                Case 8
                    $Output &= "SRAM (8)" & @CRLF
                Case 9
                    $Output &= "RAM (9)" & @CRLF
                Case 10
                    $Output &= "ROM (10)" & @CRLF
                Case 11
                    $Output &= "Flash (11)" & @CRLF
                Case 12
                    $Output &= "EEPROM (12)" & @CRLF
                Case 13
                    $Output &= "FEPROM (13)" & @CRLF
                Case 14
                    $Output &= "EPROM (14)" & @CRLF
                Case 15
                    $Output &= "CDRAM (15)" & @CRLF
                Case 16
                    $Output &= "3DRAM (16)" & @CRLF
                Case 17
                    $Output &= "SDRAM (17)" & @CRLF
                Case 18
                    $Output &= "SGRAM (18)" & @CRLF
                Case 19
                    $Output &= "RDRAM (19)" & @CRLF
                Case 20
                    $Output &= "DDR (20)" & @CRLF
                Case 21
                    $Output &= "DDR2 (21)" & @CRLF
                Case 22
                    $Output &= "DDR2 FB-DIMM (22)" & @CRLF
                Case 24
                    $Output &= "DDR3 (24)" & @CRLF
                Case 25
                    $Output &= "FBD2 (25)" & @CRLF
            EndSwitch
            $Output &= $Capacity & $objItem.Capacity / 1024 ^ 2 & "  mb" & @CRLF & @CRLF
            If $Object_Flag = 0 Then $Output &= $SortieWMIRF & $OutputTitle & @CRLF
            If $Output = "" Then $Output &= $SortieWMI_PhysicalMemory & @CRLF
        Next
    EndIf
EndFunc   ;==>_PhysicalMemory

Func _GETDOSOUTPUT($COMMAND)
    Local $CH, $TMP
    Local $TEXT = "", $PID = Run('"' & @ComSpec & '" /c ' & $COMMAND, "", @SW_HIDE, 2 + 4)
    While 1
        $TEXT &= StdoutRead($PID, False, False)
        If @error Then ExitLoop
        Sleep(10)
    WEnd
    $CH = StringSplit("‚,é;Š,è;ƒ,â;ˆ,ê;…,à;—,ù;‡,ç;ÿ, ;“,ô", ";")
    For $i = 1 To $CH[0]
        $TMP = StringSplit($CH[$i], ",")
        $TEXT = StringReplace($TEXT, $TMP[1], $TMP[2])
    Next
    Return $TEXT
EndFunc   ;==>_GETDOSOUTPUT


#cs ----------------------------------------------------------------------------

    Win32_VideoController class
    _VideoController()

    Functions :
    _WinClassesVideoController()
    WMIDateStringToDate($dtmDate)
    _VideoController()
    _VideoArchitecture()
    _AcceleratorCapabilities()
    _Availability()
    _VideoMemoryType()
    _ConfigVideoUser()
    _ConfigManagerErrorCode()

    $strAcceleratorCapabilities = $objItem.AcceleratorCapabilities(0)
    "AcceleratorCapabilities: " & $strAcceleratorCapabilities & @CRLF
    "AdapterCompatibility: " & $objItem.AdapterCompatibility & @CRLF
    "AdapterDACType: " & $objItem.AdapterDACType & @CRLF
    "AdapterRAM: " & $objItem.AdapterRAM & @CRLF
    "Availability: " & $objItem.Availability & @CRLF
    $strCapabilityDescriptions = $objItem.CapabilityDescriptions(0)
    "CapabilityDescriptions: " & $strCapabilityDescriptions & @CRLF
    "Caption: " & $objItem.Caption & @CRLF
    "ColorTableEntries: " & $objItem.ColorTableEntries & @CRLF
    "ConfigManagerErrorCode: " & $objItem.ConfigManagerErrorCode & @CRLF
    "ConfigManagerUserConfig: " & $objItem.ConfigManagerUserConfig & @CRLF
    "CreationClassName: " & $objItem.CreationClassName & @CRLF
    "CurrentBitsPerPixel: " & $objItem.CurrentBitsPerPixel & @CRLF
    "CurrentHorizontalResolution: " & $objItem.CurrentHorizontalResolution & @CRLF
    "CurrentNumberOfColors: " & $objItem.CurrentNumberOfColors & @CRLF
    "CurrentNumberOfColumns: " & $objItem.CurrentNumberOfColumns & @CRLF
    "CurrentNumberOfRows: " & $objItem.CurrentNumberOfRows & @CRLF
    "CurrentRefreshRate: " & $objItem.CurrentRefreshRate & @CRLF
    "CurrentScanMode: " & $objItem.CurrentScanMode & @CRLF
    "CurrentVerticalResolution: " & $objItem.CurrentVerticalResolution & @CRLF
    "Description: " & $objItem.Description & @CRLF
    "DeviceID: " & $objItem.DeviceID & @CRLF
    "DeviceSpecificPens: " & $objItem.DeviceSpecificPens & @CRLF
    "DitherType: " & $objItem.DitherType & @CRLF
    "DriverDate: " & WMIDateStringToDate($objItem.DriverDate) & @CRLF
    "DriverVersion: " & $objItem.DriverVersion & @CRLF
    "ErrorCleared: " & $objItem.ErrorCleared & @CRLF
    "ErrorDescription: " & $objItem.ErrorDescription & @CRLF
    "ICMIntent: " & $objItem.ICMIntent & @CRLF
    "ICMMethod: " & $objItem.ICMMethod & @CRLF
    "InfFilename: " & $objItem.InfFilename & @CRLF
    "InfSection: " & $objItem.InfSection & @CRLF
    "InstallDate: " & WMIDateStringToDate($objItem.InstallDate) & @CRLF
    "InstalledDisplayDrivers: " & $objItem.InstalledDisplayDrivers & @CRLF
    "LastErrorCode: " & $objItem.LastErrorCode & @CRLF
    "MaxMemorySupported: " & $objItem.MaxMemorySupported & @CRLF
    "MaxNumberControlled: " & $objItem.MaxNumberControlled & @CRLF
    "MaxRefreshRate: " & $objItem.MaxRefreshRate & @CRLF
    "MinRefreshRate: " & $objItem.MinRefreshRate & @CRLF
    "Monochrome: " & $objItem.Monochrome & @CRLF
    "Name: " & $objItem.Name & @CRLF
    "NumberOfColorPlanes: " & $objItem.NumberOfColorPlanes & @CRLF
    "NumberOfVideoPages: " & $objItem.NumberOfVideoPages & @CRLF
    "PNPDeviceID: " & $objItem.PNPDeviceID & @CRLF
    $strPowerManagementCapabilities = $objItem.PowerManagementCapabilities(0)
    "PowerManagementCapabilities: " & $strPowerManagementCapabilities & @CRLF
    "PowerManagementSupported: " & $objItem.PowerManagementSupported & @CRLF
    "ProtocolSupported: " & $objItem.ProtocolSupported & @CRLF
    "ReservedSystemPaletteEntries: " & $objItem.ReservedSystemPaletteEntries & @CRLF
    "SpecificationVersion: " & $objItem.SpecificationVersion & @CRLF
    "Status: " & $objItem.Status & @CRLF
    "StatusInfo: " & $objItem.StatusInfo & @CRLF
    "SystemCreationClassName: " & $objItem.SystemCreationClassName & @CRLF
    "SystemName: " & $objItem.SystemName & @CRLF
    "SystemPaletteEntries: " & $objItem.SystemPaletteEntries & @CRLF
    "TimeOfLastReset: " & WMIDateStringToDate($objItem.TimeOfLastReset) & @CRLF
    "VideoArchitecture: " & $objItem.VideoArchitecture & @CRLF
    "VideoMemoryType: " & $objItem.VideoMemoryType & @CRLF
    "VideoMode: " & $objItem.VideoMode & @CRLF
    "VideoModeDescription: " & $objItem.VideoModeDescription & @CRLF
    "VideoProcessor: " & $objItem.VideoProcessor & @CRLF
#ce ----------------------------------------------------------------------------

;~ _VideoController()

Func _WinClassesVideoController()
    $objWMIService = ObjGet("winmgmts:{impersonationLevel=impersonate}!\\" & $strComputer & "\root\CIMV2")
    $colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_VideoController", "WQL", 0x10 + 0x20)
EndFunc   ;==>_WinClassesVideoController

Func _VideoController()
    _WinClassesVideoController()
    If IsObj($colItems) Then
        Local $Object_Flag = 0
        For $objItem In $colItems
            $Object_Flag = 1
            $Output &= $SWMI & "Win32_VideoController" & @CRLF
            $Output &= "-----------------------------------------------" & @CRLF & @CRLF
            $Output &= $Name & $objItem.Name & @CRLF
            $Output &= "DAC : " & $objItem.AdapterDACType & @CRLF
            $Output &= "Description : " & $objItem.VideoModeDescription & @CRLF
            $Output &= $CurrentBitsPerPixel & $objItem.CurrentBitsPerPixel & " bits" & @CRLF
            $Output &= $MemVideo & $objItem.AdapterRAM / 1024 ^ 2 & " MO" & @CRLF
            $Output &= $DeviceID & $objItem.DeviceID & @CRLF
            _VideoArchitecture()
            _AcceleratorCapabilities()
            $Output &= $CurrentRefreshRate & $objItem.CurrentRefreshRate & " Hertz" & @CRLF
            $Output &= "-----------------------------------------------" & @CRLF & @CRLF
            $Output &= "Driver Date : " & WMIDateStringToDate($objItem.DriverDate) & @CRLF
            $Output &= "Driver Version : " & $objItem.DriverVersion & @CRLF
            $Output &= $DriverInstall & $objItem.InstalledDisplayDrivers & @CRLF
            $Output &= "-----------------------------------------------" & @CRLF & @CRLF
            _ConfigVideoUser()
            _VideoMemoryType()
            $Output &= "VideoMemoryType: " & $objItem.VideoMemoryType & @CRLF
            $Output &= $FileINF & $objItem.InfFilename & @CRLF
            $Output &= "Section : " & $objItem.InfSection & @CRLF
            $Output &= "-----------------------------------------------" & @CRLF & @CRLF
            _Availability()
            $Output &= "Status: " & $objItem.Status & @CRLF
            _ConfigManagerErrorCode()
            If $Object_Flag = 0 Then $Output &= $SortieWMIRF & $OutputTitle & @CRLF
            If $Output = "" Then $Output &= $SortieWMI_Video & @CRLF
            If MsgBox(64, "", $Output) = 2 Then ExitLoop
        Next
    EndIf
EndFunc   ;==>_VideoController

Func WMIDateStringToDate($dtmDate)
    Return (StringMid($dtmDate, 5, 2) & "/" & _
            StringMid($dtmDate, 7, 2) & "/" & StringLeft($dtmDate, 4) _
             & " " & StringMid($dtmDate, 9, 2) & ":" & StringMid($dtmDate, 11, 2) & ":" & StringMid($dtmDate, 13, 2))
EndFunc   ;==>WMIDateStringToDate

Func _VideoArchitecture()
    _WinClassesVideoController()
    For $objItem In $colItems
        Local $VideoArchitecture = $objItem.VideoArchitecture
        Switch $VideoArchitecture
            Case 1
                $Output &= $ArchVideo & $Inconnu & "(0)" & @CRLF
            Case 2
                $Output &= $ArchVideo & $Autre & "(1)" & @CRLF
            Case 3
                $Output &= $ArchVideo & "CGA (3)" & @CRLF
            Case 4
                $Output &= $ArchVideo & "EGA (4)" & @CRLF
            Case 5
                $Output &= $ArchVideo & "VGA (5)" & @CRLF
            Case 6
                $Output &= $ArchVideo & "SVGA (6)" & @CRLF
            Case 7
                $Output &= $ArchVideo & "MDA (7)" & @CRLF
            Case 8
                $Output &= $ArchVideo & "HGC (8)" & @CRLF
            Case 9
                $Output &= $ArchVideo & "MCGA (9)" & @CRLF
            Case 10
                $Output &= $ArchVideo & "8514A (10)" & @CRLF
            Case 11
                $Output &= $ArchVideo & "XGA (11)" & @CRLF
            Case 12
                $Output &= $ArchVideo & "Linear Frame Buffer (12)" & @CRLF
            Case 160
                $Output &= $ArchVideo & "PC-98 (160)" & @CRLF
        EndSwitch
    Next
EndFunc   ;==>_VideoArchitecture

Func _AcceleratorCapabilities()
    _WinClassesVideoController()
    For $objItem In $colItems
        Local $strAcceleratorCapabilities = $objItem.AcceleratorCapabilities
        Switch $strAcceleratorCapabilities
            Case 0
                $Output &= $ControlVideo & $Inconnu & "(0)" & @CRLF
            Case 1
                $Output &= $ControlVideo & $Autre & "(1)" & @CRLF
            Case 2
                $Output &= $ControlVideo & $AccelerateurGraph & "(2)" & @CRLF
            Case 3
                $Output &= $ControlVideo & $Accelerateur3D & "(3)" & @CRLF
        EndSwitch
    Next
EndFunc   ;==>_AcceleratorCapabilities

Func _Availability()
    _WinClassesVideoController()
    For $objItem In $colItems
        Local $Availability = $objItem.Availability
        Switch $Availability
            Case 1
                $Output &= $DispoVideoControl & $Inconnu & "(1)" & @CRLF
            Case 2
                $Output &= $DispoVideoControl & $Autre & "(2)" & @CRLF
            Case 3
                $Output &= $DispoVideoControl & $Availability3 & @CRLF
            Case 4
                $Output &= $DispoVideoControl & $Availability4 & @CRLF
            Case 5
                $Output &= $DispoVideoControl & $Availability5 & @CRLF
            Case 6
                $Output &= $DispoVideoControl & $Availability6 & @CRLF
            Case 7
                $Output &= $DispoVideoControl & $Availability7 & @CRLF
            Case 8
                $Output &= $DispoVideoControl & $Availability8 & @CRLF
            Case 9
                $Output &= $DispoVideoControl & $Availability9 & @CRLF
            Case 10
                $Output &= $DispoVideoControl & $Availability10 & @CRLF
            Case 11
                $Output &= $DispoVideoControl & $Availability11 & @CRLF
            Case 12
                $Output &= $DispoVideoControl & $Availability12 & @CRLF
            Case 13
                $Output &= $DispoVideoControl & $Availability13 & @CRLF
            Case 14
                $Output &= $DispoVideoControl & $Availability14 & @CRLF
            Case 15
                $Output &= $DispoVideoControl & $Availability15 & @CRLF
            Case 16
                $Output &= $DispoVideoControl & $Availability16 & @CRLF
            Case 17
                $Output &= $DispoVideoControl & $Availability17 & @CRLF
            Case 18
                $Output &= $DispoVideoControl & $Availability18 & @CRLF
            Case 19
                $Output &= $DispoVideoControl & $Availability19 & @CRLF
            Case 20
                $Output &= $DispoVideoControl & $Availability20 & @CRLF
            Case 21
                $Output &= $DispoVideoControl & $Availability21 & @CRLF
        EndSwitch
    Next
EndFunc   ;==>_Availability

Func _VideoMemoryType()
    _WinClassesVideoController()
    For $objItem In $colItems
        Local $VideoMemType = $objItem.VideoMemoryType
        Switch $VideoMemType
            Case 1
                $Output &= $VideoMemoryType & $Autre & "(1)" & @CRLF
            Case 2
                $Output &= $VideoMemoryType & $Inconnu & @CRLF
            Case 3
                $Output &= $VideoMemoryType & "VRAM (3)" & @CRLF
            Case 4
                $Output &= $VideoMemoryType & "DRAM (4)" & @CRLF
            Case 5
                $Output &= $VideoMemoryType & "SRAM (5)" & @CRLF
            Case 6
                $Output &= $VideoMemoryType & "WRAM (6)" & @CRLF
            Case 7
                $Output &= $VideoMemoryType & "EDO RAM (7)" & @CRLF
            Case 8
                $Output &= $VideoMemoryType & "Burst Synchronous DRAM (8)" & @CRLF
            Case 9
                $Output &= $VideoMemoryType & "Pipelined Burst SRAM (9)" & @CRLF
            Case 10
                $Output &= $VideoMemoryType & "CDRAM (10)" & @CRLF
            Case 11
                $Output &= $VideoMemoryType & "3DRAM (11)" & @CRLF
            Case 12
                $Output &= $VideoMemoryType & "SDRAM (12)" & @CRLF
            Case 13
                $Output &= $VideoMemoryType & "SGRAM (13)" & @CRLF
        EndSwitch
    Next
EndFunc   ;==>_VideoMemoryType

Func _ConfigVideoUser()
    _WinClassesVideoController()
    For $objItem In $colItems
        Local $ConfigManagerUserConfig = $objItem.ConfigManagerUserConfig
        If $ConfigManagerUserConfig = False Then
            $Output &= $ConfigUserVideo & $False & @CRLF
        Else
            $Output &= $ConfigUserVideo & $True & @CRLF
        EndIf
    Next
EndFunc   ;==>_ConfigVideoUser

Func _ConfigManagerErrorCode()
    _WinClassesVideoController()
    For $objItem In $colItems
        Local $ErrorCode = $objItem.ConfigManagerErrorCode
        Switch $ErrorCode
            Case 0
                $Output &= $CMECWIN32 & $CMEC0
            Case 1
                $Output &= $CMECWIN32 & $CMEC1
            Case 2
                $Output &= $CMECWIN32 & $CMEC2
            Case 3
                $Output &= $CMECWIN32 & $CMEC3
            Case 4
                $Output &= $CMECWIN32 & $CMEC4
            Case 5
                $Output &= $CMECWIN32 & $CMEC5
            Case 6
                $Output &= $CMECWIN32 & $CMEC6
            Case 7
                $Output &= $CMECWIN32 & $CMEC7
            Case 8
                $Output &= $CMECWIN32 & $CMEC8
            Case 9
                $Output &= $CMECWIN32 & $CMEC9
            Case 10
                $Output &= $CMECWIN32 & $CMEC10
            Case 11
                $Output &= $CMECWIN32 & $CMEC11
            Case 12
                $Output &= $CMECWIN32 & $CMEC12
            Case 13
                $Output &= $CMECWIN32 & $CMEC13
            Case 14
                $Output &= $CMECWIN32 & $CMEC14
            Case 15
                $Output &= $CMECWIN32 & $CMEC15
            Case 16
                $Output &= $CMECWIN32 & $CMEC16
            Case 17
                $Output &= $CMECWIN32 & $CMEC17
            Case 18
                $Output &= $CMECWIN32 & $CMEC18
            Case 19
                $Output &= $CMECWIN32 & $CMEC19
            Case 20
                $Output &= $CMECWIN32 & $CMEC20
            Case 21
                $Output &= $CMECWIN32 & $CMEC21
            Case 22
                $Output &= $CMECWIN32 & $CMEC22
            Case 23
                $Output &= $CMECWIN32 & $CMEC23
            Case 24
                $Output &= $CMECWIN32 & $CMEC24
            Case 25
                $Output &= $CMECWIN32 & $CMEC25
            Case 26
                $Output &= $CMECWIN32 & $CMEC26
            Case 27
                $Output &= $CMECWIN32 & $CMEC27
            Case 28
                $Output &= $CMECWIN32 & $CMEC28
            Case 29
                $Output &= $CMECWIN32 & $CMEC29
            Case 30
                $Output &= $CMECWIN32 & $CMEC30
            Case 31
                $Output &= $CMECWIN32 & $CMEC31
        EndSwitch
    Next
EndFunc   ;==>_ConfigManagerErrorCode

 

Thank for your opignon.

 
 
Edited by Amesam
Link to comment
Share on other sites

  • Moderators

@Amesam What does this provide that Script-o-matic does not? In fact, at brief glance it appears the functions are almost word for word the same.

"Profanity is the last vestige of the feeble mind. For the man who cannot express himself forcibly through intellect must do so through shock and awe" - Spencer W. Kimball

How to get your question answered on this forum!

Link to comment
Share on other sites

Thank you for the advice

Yes use script-o-matic for the construction of the UDF
What is missing is the détail for example the characteristics of Bios Script-o-matic on my PC (7)
By doing so i search all values.
 
Example :
 
2016-05-09_180554.png.ebaf9a92affae5756b
 

So it is more comprehensive

Is it a mistake ?

Thank :)

 

 

Edited by Amesam
Link to comment
Share on other sites

  • Moderators

Not a mistake, just thought it would help your post if you expand on what your script does that Script-o-matic does not.

"Profanity is the last vestige of the feeble mind. For the man who cannot express himself forcibly through intellect must do so through shock and awe" - Spencer W. Kimball

How to get your question answered on this forum!

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...