1.选择C#中的 "类库" 来目;
2.由于System.Management的动态链接库不是C#中默认加载的,,所以要添加System.Management的命名空间前要添加System.Management.dll链接库。依次选择:“项目”→“添加引用”→“.NET”菜单栏,加入System.Management。确认添加了动态链接库后添加命名空间:using System.Management;
3.要构造一个ManagementClass类管理定义为Win32_NetworkAdapter Configuration的WMI类,然后将ManagementClass类中的所有变量的值返回给属于ManagementObjectCollection类的变量,ManagementObjectCollection类用于表示WMI实例的不同集合,将不同集合中的各个MAC地址读出,就可获得多网卡的MAC地址。
构造ManagementClass,函数原型如下:
public ManagementClass(string path);
参数:path表示WMI的路径。
要返回ManagementClass所有实例的集合,使用GetInstances(),函数原型如下:
public ManagementObjectCollection GetInstances();
4.创建项目,添加System.Management之后,输入代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Management;
namespace ClassLibrary1
{
class Program
{
static void Main(string[] args)
{
ManagementClass mc;//定义一个ManagementClass类
//将ManagementClass类变量定义为Win32_NetworkAdapter Configuration,以便获得//网络信息
mc=new ManagementClass("Win32_NetworkAdapterConfiguration");
//使用ManagementObjectCollection记录mc中的所有信息,包括多个网卡信息
ManagementObjectCollection moc=mc. GetInstances();
//取得ManagementObjectCollection中的不同网卡配置信息,判断如果该网卡可用就//去读取MAC地址
foreach(ManagementObject mo in moc)
{
if (mo["IPEnabled"].ToString() == "True")
Console.WriteLine("MAC address" + mo["MacAddress"].ToString());
}
}
}
}
解决方法:(1)右击项目,选择”设置自动启动“
(2)右击项目,选择”属性“,改变”输出类型“为”控制台应用程序“(这方法在此中正确)
(3)右击解决方案,选择”属性“,改变”单启动项目“