C# 提供了ManagementClass类来获取本机的一些基本信息,比如CPU的个数,CPU的频率,网卡的MAC,内存的大小,硬盘的大小等。

获取本机MAC地址:

       /// <summary>/// 获取本机的MAC地址/// </summary>/// <returns></returns>public static string GetMACString(){ManagementClass mAdapter = new ManagementClass("Win32_NetworkAdapterConfiguration");ManagementObjectCollection mo = mAdapter.GetInstances();foreach (ManagementBaseObject m in mo){if ((bool)m["IpEnabled"] == true){return m["MacAddress"].ToString();}}mo.Dispose();return null;}获取本机CPU的个数:/// <summary>/// 获取CPU的个数/// </summary>/// <returns></returns>public static int GetCpuCount(){try{using (ManagementClass mCpu = new ManagementClass("Win32_Processor")){ManagementObjectCollection cpus = mCpu.GetInstances();return cpus.Count;}}catch{}return -1;}获取本机CPU的频率/// <summary>/// 获取CPU的频率 这里之所以使用string类型的数组,主要是因为cpu的多核/// </summary>/// <returns></returns>public static string[] GetCpuMHZ(){ManagementClass mc = new ManagementClass("Win32_Processor");ManagementObjectCollection cpus = mc.GetInstances();string[] mHz = new string[cpus.Count];int c = 0;ManagementObjectSearcher mySearch = new ManagementObjectSearcher("select * from Win32_Processor");foreach (ManagementObject mo in mySearch.Get()){mHz[c] = mo.Properties["CurrentClockSpeed"].Value.ToString();c++;}mc.Dispose();mySearch.Dispose();return mHz;}获取本机硬盘的大小/// <summary>/// 获取硬盘的大小/// </summary>/// <returns></returns>public static string GetSizeOfDisk(){ManagementClass mc = new ManagementClass("Win32_DiskDrive");ManagementObjectCollection moj = mc.GetInstances();foreach (ManagementObject m in moj){return m.Properties["Size"].Value.ToString();}return "-1";}获取本机内存的大小:/// <summary>/// 获取内存的大小/// </summary>/// <returns></returns>public static string GetSizeOfMemery(){ManagementClass mc = new ManagementClass("Win32_OperatingSystem");ManagementObjectCollection moc = mc.GetInstances();double sizeAll = 0.0;foreach (ManagementObject m in moc){if (m.Properties["TotalVisibleMemorySize"].Value != null){sizeAll += Convert.ToDouble(m.Properties["TotalVisibleMemorySize"].Value.ToString());}}mc = null;moc.Dispose();return sizeAll.ToString();}

本程序是使用VS2005编写的,可运行。

ManageMentClass 对象被实例化时,根据初始化参数的不同能够获取不同的本地信息:"Win32_NetworkAdapterConfiguration" 获取本机网络适配器对象。据此可以获取网络地址等。"Win32_DiskDiver" 获取本机硬盘的相关信息,"Win32_Processor" 获取本机CPU相关的信息。"Win32_OperatingSystem" 获取内存等相关信息。

转载于:https://www.cnblogs.com/hardsoftware/p/5743822.html

C#中的ManagementClass类相关推荐

  1. VS/C#中的ManagementClass类和获取硬件的信息的用法

    在.NET的项目中,有时候需要获取计算机的硬件的相关信息,在C#语言中需要利用ManagementClass这个类来进行相关操作. ManagementClass类:对表示一个通用信息模型 (CIM) ...

  2. ManagementClass类——ManagementClass 构造函数

    初始化 ManagementClass 类的新实例. .NET Framework 安全性 完全信任直接调用方.此成员不能由部分受信任的代码使用.有关更多信息,请参见 通过部分受信任的代码使用库.   ...

  3. ManagementClass类解析和C#如何获取硬件的相关信息

    在.NET的项目中,有时候需要获取计算机的硬件的相关信息,在C#语言中需要利用ManagementClass这个类来进行相关操作. 现在先来介绍一下ManagementClass类,首先看一下类的继承 ...

  4. python中的新式类与旧式类的一些基于descriptor的概念(下)

    3. Descriptor介绍 3.1 Descriptor代码示例 3.2 定义 3.3 Descriptor Protocol(协议) 3.4 Descriptor调用方法 4. 基于Descri ...

  5. python中的新式类与旧式类的一些基于descriptor的概念(上)

    python中基于descriptor的一些概念(上) 1. 前言 2. 新式类与经典类 2.1 内置的object对象 2.2 类的方法 2.2.1 静态方法 2.2.2 类方法 2.3 新式类(n ...

  6. java 中常用的类

    java 中常用的类 Math Math 类,包含用于执行基本数学运算的方法 常用API 取整 l  static double abs(double  a) 获取double 的绝对值 l  sta ...

  7. python创建类的实例方法-Python中动态创建类实例的方法

    简介 在Java中我们可以通过反射来根据类名创建类实例,那么在Python我们怎么实现类似功能呢? 其实在Python有一个builtin函数import,我们可以使用这个函数来在运行时动态加载一些模 ...

  8. 标准C++中的string类的用法总结

    相信使用过MFC编程的朋友对CString这个类的印象应该非常深刻吧?的确,MFC中的CString类使用起来真的非常的方便好用.但是如果离开了MFC框架,还有没有这样使用起来非常方便的类呢?答案是肯 ...

  9. ASP.NET2.0中的ClientScriptManager 类用法—如何添加客户端事件!

    在ASP.NET2.0中,ClientScriptManager 类通过键 String 和 Type 唯一地标识脚本.具有相同的键和类型的脚本被视为重复脚本.因此,我们可以使用脚本类型来避免混淆可能 ...

最新文章

  1. 从《2018年全球创新指数报告》看中国创新力!
  2. python用os模块自动打开软件_Python实现自动打开电脑应用的示例代码
  3. 【Python】Scrapy的安装与使用
  4. 宣布EAXY:在Java中简化XML
  5. 2020数学建模国赛C题思路
  6. 投后管理岗面试_2020天津水务招79人,管理岗+操作岗,专科起报
  7. matplotlib+numpy绘制二维条形直方图
  8. 77-CCI,Commodity Channel Index,商品通道指标.(2015.7.1)
  9. ubuntu 18.04安装搜狗输入法
  10. SpringCloud教程合集
  11. 信息系统分析与设计 第三章 信息系统建设概论
  12. sklearn 学习笔记 —— Nearest Neighbors
  13. mathematica动态模型的建模分析
  14. word在英文输入法的状态下,打出来的引号还是中文字符
  15. 一战赚了1090亿,“恐怖”的张一鸣!
  16. 【模式识别与机器学习】模式识别中的一些基本概念
  17. 电商精细化运营的五大关键指标和三个关键思路——笔记
  18. 海康威视 设备网络SDK
  19. 本题要求实现一个计算xn(n≥0)的函数。
  20. Anycodes,在线编程网站上线啦!支持六种编程语言,语法高亮,行数显示,和代码自动折叠。小伙伴们,请速度围观!

热门文章

  1. 机器人制作初学者的常见误区
  2. 全国英语二级计算机考试,全国计算机等级考试网上报名流程(国二,计算机二级)...
  3. mysql1085报错:ERROR 1805 (HY000): Column count of mysql.user is wrong. Expected 45, found 46. The tabl
  4. 了解数字隔离器安全使用的限制值
  5. linux无法同步数据库表,Linux数据库:MySQL主从同步设置和同步错误处理
  6. Android-P夜间模式
  7. Windows编程之使用GetAsyncKeyState()函数为什么要( 0x8000)?
  8. 设置IDEA中DB Navigator自动提交(Auto-Commit ON)
  9. AI首席架构师5-AICA-文心NLP大模型技术及应用
  10. 用echarts结合jsp,servlet生成统计图表