C#调用WMI获取本机MAC地址列表。

private void button1_Click(object sender, System.EventArgs e) 
        

            
string strsearch=string.Format(@"SELECT MACAddress FROM Win32_NetworkAdapter WHERE ((MACAddress Is Not NULL)AND (Manufacturer <> 'Microsoft'))"); 
 
            System.Management.ManagementObjectSearcher msearch
=new ManagementObjectSearcher();  
            msearch.Scope
=new ManagementScope(@"root\CIMV2"); 
            msearch.Query
=new ObjectQuery(strsearch); 
            
int i=1
            
try 
            

                
if((msearch.Get().Count<1|| (msearch.Get()==null)) 
                

                    
this.listBox1.Items.Add("No MAC Address!"); 
                }
 
                
else 
                

                    
foreach(System.Management.ManagementObject mymac in msearch.Get()) 
                    

                        
string str1=string.Format("MAC{0} address:{1}",i.ToString(),mymac["MACAddress"].ToString()); 
                        
this.listBox1.Items.Add(str1); 
                        i
++
                    }
 
                }
 
            }
 
            
catch(Exception ex) 
            

                
string msg=ex.Message.ToString(); 
                MessageBox.Show(
"erro", msg); 
            }
 
 
        }
 

我想是因为现在介绍WMI的文档太少,大多都是介绍一些常见的查询功能,更多的执行功能,很少有文章介绍,没有文档或参考代码很难搞懂。而且wmi在执行时(查询,或执行wmi函数), 很难捕获控制异常错误。
这里有个WMI的管理工具,在编写wmi的代码时,非常有用,可以查询,wmi有哪些方法和属性可以利用,和调用方法是需要哪些参数,wmi的一些方法名确实很莫名其妙。
http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=6430F853-1120-48DB-8CC5-F2ABDC3ED314
原文地址:https://www.cnblogs.com/aipeli/p/251725.html