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. CMD 输入中文看不到输入法的解决方法
  2. 计算机网络概述---传输层 UDP和TCP
  3. 要强大的“黑匣子”,还是“可解释”的机器学习?| 清华AI Time激辩
  4. 判断 小程序_社区团购小程序商城系统,可以从哪些方面判断?
  5. linux 时间日期类常用命令
  6. Visual Studio配置VLFeat库(一次配置,永久生效)
  7. 汽车车牌识别系统(六)-- 项目中的各个文件解析
  8. python bp神经网络 异或_基于python的BP神经网络及异或实现过程解析
  9. phpstudy编写html,phpStudy简介
  10. 便携式三星mysql_三星集团某站点MySQL盲注一枚(附python验证脚本)
  11. 余姚中考能用计算机吗,2018年余姚中考政策有大变化,2020年取消奖励加分项目...
  12. Visual Studio启用64位 IIS Express 解决 x64位的dll 而出现 未能加载文件或程序集“xxxxxxxx”或它的某一个依赖项。试图加载格式不正确的程序。...
  13. vscode写c++好吗_寒假实习简历你会写吗?四个问题帮你写好寒假实习简历
  14. linux下录音识别成文字软件下载,如何将录音转换成文字,这个方法你需要知道...
  15. 情人节神奇的传情之物,“懂爱”的你都会爱上它丨情人节系列
  16. 【Java编程】写一个将华氏温度转换成摄氏温度的程序,转换的公式是:°F = (9/5)*°C + 32 其中C表示摄氏温度,F表示华氏温度。
  17. ASP常用服务器获取各类信息汇总
  18. 磁盘碎片对计算机系统的影响,磁盘碎片整理第9遍了|Win7磁盘碎片整理的方法
  19. 如何防止别人偷窥我给宝贝儿娜娜的信
  20. 云服务器公网架设传奇,传奇私服服务器端在云服务器架设,全版本通用的传奇游戏架设教程...

热门文章

  1. [答疑]茶叶盒的用例
  2. GSMA公布MWC19上海最新信息
  3. 无人直播硬改系统-技术分析
  4. 欧美生活馆—供应链后台
  5. 你大学最后悔的一件事是什么?
  6. 南通大学教务管理微信公众号体验
  7. 实时时钟电路DS1302的原理及应用
  8. 基于Module Federation的模块化跨栈方案探索
  9. Linux Mysql自动备份
  10. 深度学习——attention机制