添加引用:System.Management
1 /// <summary> 2 /// 获取本机的MAC地址 3 /// </summary> 4 /// <returns></returns> 5 public static string GetMACString() 6 { 7 ManagementClass mAdapter = new ManagementClass("Win32_NetworkAdapterConfiguration"); 8 ManagementObjectCollection mo = mAdapter.GetInstances(); 9 foreach (ManagementBaseObject m in mo) 10 { 11 if ((bool)m["IpEnabled"] == true) 12 { 13 return m["MacAddress"].ToString(); 14 } 15 } 16 mo.Dispose(); 17 return null; 18 } 19 20 21 22 /// <summary> 23 /// 获取CPU的个数 24 /// </summary> 25 /// <returns></returns> 26 public static int GetCpuCount() 27 { 28 try 29 { 30 using (ManagementClass mCpu = new ManagementClass("Win32_Processor")) 31 { 32 ManagementObjectCollection cpus = mCpu.GetInstances(); 33 return cpus.Count; 34 } 35 } 36 catch 37 { 38 } 39 return -1; 40 } 41 42 43 44 /// <summary> 45 /// 获取CPU的频率 这里之所以使用string类型的数组,主要是因为cpu的多核 46 /// </summary> 47 /// <returns></returns> 48 public static string[] GetCpuMHZ() 49 { 50 ManagementClass mc = new ManagementClass("Win32_Processor"); 51 ManagementObjectCollection cpus = mc.GetInstances(); 52 53 string[] mHz = new string[cpus.Count]; 54 int c = 0; 55 ManagementObjectSearcher mySearch = new ManagementObjectSearcher("select * from Win32_Processor"); 56 foreach (ManagementObject mo in mySearch.Get()) 57 { 58 mHz[c] = mo.Properties["CurrentClockSpeed"].Value.ToString(); 59 c++; 60 } 61 mc.Dispose(); 62 mySearch.Dispose(); 63 return mHz; 64 } 65 66 67 68 /// <summary> 69 /// 获取硬盘的大小 70 /// </summary> 71 /// <returns></returns> 72 public static string GetSizeOfDisk() 73 { 74 ManagementClass mc = new ManagementClass("Win32_DiskDrive"); 75 ManagementObjectCollection moj = mc.GetInstances(); 76 foreach (ManagementObject m in moj) 77 { 78 return m.Properties["Size"].Value.ToString(); 79 } 80 return "-1"; 81 } 82 83 84 85 86 /// <summary> 87 /// 获取内存的大小 88 /// </summary> 89 /// <returns></returns> 90 public static string GetSizeOfMemery() 91 { 92 ManagementClass mc = new ManagementClass("Win32_OperatingSystem"); 93 ManagementObjectCollection moc = mc.GetInstances(); 94 95 double sizeAll = 0.0; 96 foreach (ManagementObject m in moc) 97 { 98 if (m.Properties["TotalVisibleMemorySize"].Value != null) 99 { 100 sizeAll += Convert.ToDouble(m.Properties["TotalVisibleMemorySize"].Value.ToString()); 101 } 102 } 103 mc = null; 104 moc.Dispose(); 105 106 return sizeAll.ToString(); 107 } 108 109 /// <summary> 110 /// 取CPU编号 111 /// </summary> 112 /// <returns></returns> 113 public static String GetCpuID() 114 { 115 try 116 { 117 ManagementClass mc = new ManagementClass("Win32_Processor"); 118 ManagementObjectCollection moc = mc.GetInstances(); 119 120 String strCpuID = null; 121 foreach (ManagementObject mo in moc) 122 { 123 strCpuID = mo.Properties["ProcessorId"].Value.ToString(); 124 break; 125 } 126 return strCpuID; 127 } 128 catch 129 { 130 return ""; 131 } 132 133 }