【C#】 获取计算机的硬件信息

添加引用: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         } 

 

上一篇:【2019年8月】OCP 071认证考试最新版本的考试原题-第31题


下一篇:Monte-Carlo Dropout