Page 1 sur 1

[Func] _GetNicInfos (WMI) Informations cartes réseau

Posté : mar. 03 févr. 2009 09:28
par Tlem
Voici une fonction que je vous livre tel quelle.
Mes besoins était la récupération du nom des interfaces réseau (PCI et USB), de leur état et de leur ID PNP.

Vous avez en commentaire la liste des informations qui sont récupérables.
A vous de choisir et de mettre en forme ce dont vous avez besoin.

Code : Tout sélectionner

;#include <array.au3>
;$NicList = _GetNICInfos()
;If Not @error Then _ArrayDisplay($NicList, "")

Func _GetNICInfos()
    Local $wbemFlagReturnImmediately = 0x10
    Local $wbemFlagForwardOnly = 0x20
    Local $colItems = ''
    Local $Output = ''
    Local $NBList = 1
    Local $aNICList[$NBList][3]
    $aNICList[0][0] = "Name"
    $aNICList[0][1] = "State"
    $aNICList[0][2] = "PNPDeviceID"

    $objWMIService = ObjGet("winmgmts:\\localhost\root\CIMV2")
    $colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapter", "WQL", _
            $wbemFlagReturnImmediately + $wbemFlagForwardOnly)

    ; #####################################################################
    ; List Of Object for Win32_NetworkAdapter :
    ; AdapterType               : $objItem.AdapterType
    ; AdapterTypeId             : $objItem.AdapterTypeId
    ; AutoSense                 : $objItem.AutoSense
    ; Availability              : $objItem.Availability
    ; Caption                   : $objItem.Caption
    ; ConfigManagerErrorCode    : $objItem.ConfigManagerErrorCode
    ; ConfigManagerUserConfig   : $objItem.ConfigManagerUserConfig
    ; CreationClassName         : $objItem.CreationClassName
    ; Description               : $objItem.Description
    ; DeviceID                  : $objItem.DeviceID
    ; ErrorCleared              : $objItem.ErrorCleared
    ; ErrorDescription          : $objItem.ErrorDescription
    ; Index                     : $objItem.Index
    ; Installed                 : $objItem.Installed
    ; LastErrorCode             : $objItem.LastErrorCode
    ; MACAddress                : $objItem.MACAddress
    ; Manufacturer              : $objItem.Manufacturer
    ; MaxNumberControlled       : $objItem.MaxNumberControlled
    ; MaxSpeed                  : $objItem.MaxSpeed
    ; Name                      : $objItem.Name
    ; NetConnectionID           : $objItem.NetConnectionID
    ; NetConnectionStatus       : $objItem.NetConnectionStatus
    ; NetworkAddresses          : $strNetworkAddresses
    ; PermanentAddress          : $objItem.PermanentAddress
    ; PNPDeviceID               : $objItem.PNPDeviceID
    ; PowerManagementCapabilities   : $strPowerManagementCapabilities
    ; PowerManagementSupported  : $objItem.PowerManagementSupported
    ; ProductName               : $objItem.ProductName
    ; ServiceName               : $objItem.ServiceName
    ; Speed                     : $objItem.Speed
    ; Status                    : $objItem.Status
    ; StatusInfo                : $objItem.StatusInfo
    ; SystemCreationClassName   : $objItem.SystemCreationClassName
    ; SystemName                : $objItem.SystemName
    ; #####################################################################


    If IsObj($colItems) Then
        For $objItem In $colItems
            $PNPDev = $objItem.PNPDeviceID
            If StringLeft($PNPDev, 3) = "PCI" Or StringLeft($PNPDev, 3) = "USB" Then
                ReDim $aNICList[$NBList + 1][3]
                $aNICList[$NBList][0] = $objItem.Name
                $aNICList[$NBList][1] = $objItem.NetConnectionStatus
                $aNICList[$NBList][2] = $objItem.PNPDeviceID
                $NBList += 1
            EndIf
        Next
    Else
        SetError(1)
        $aNICList = ''
    EndIf
        Return $aNICList
EndFunc   ;==>_GetNICInfos