VB用程序读取MAC地址时,当网络连上的情况下能读取出来
当网络断开时,读取出来全部为00-00-00-00-00,有什么好的解决方法吗
网上找了找都是在连上网的情况下读取
求大虾回复

解决方案 »

  1.   


    Private Type NetCard
        Name As String
        IPAdress As String
        IpSubNets As String
        IpGateWay As String
        DnsString0 As String
        DnsString1 As String
        MacAdress As String
    End TypePublic Function GetNetCardMAC(Optional ByVal Opt As Integer = 0) As String
        '引用Microsoft WMI Scripting V1.2 Library
        Dim objSWbemServices As SWbemServices
        Dim objSWbemObjectSet As SWbemObjectSet
        Dim objSWbemObject As SWbemObject    Dim MtNetCard() As NetCard
        Dim I As Long, Msg As String    ReDim MtNetCard(0) As NetCard
        Set objSWbemServices = GetObject("winmgmts:")
        Set objSWbemObjectSet = objSWbemServices.ExecQuery("Select * From Win32_NetworkAdapterConfiguration Where IPEnabled=TRUE")
        For Each objSWbemObject In objSWbemObjectSet
            On Error Resume Next
            MtNetCard(UBound(MtNetCard)).Name = objSWbemObject.Description   '添加本机上已经安装了TCP/IP协议的网卡
            MtNetCard(UBound(MtNetCard)).MacAdress = objSWbemObject.MacAddress(0)
            ReDim Preserve MtNetCard(UBound(MtNetCard) + 1) As NetCard
        Next    For I = LBound(MtNetCard) To UBound(MtNetCard) - 1
        
    '        Msg = Msg & "网卡:" & MtNetCard(i).Name & vbNewLine
    '        Msg = Msg & "MAC:" & MtNetCard(i).MacAdress & vbNewLine        Msg = IIf(Opt = 0, MtNetCard(I).MacAdress, MtNetCard(I).Name)    Next
        
        Erase MtNetCard    GetNetCardMAC = MsgEnd Function
      

  2.   

    Dim objSWbemServices As SWbemServices这句提示用户类型未定义
      

  3.   

    http://download.csdn.net/source/2119050