C#中的ManagementClass类
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类相关推荐
- VS/C#中的ManagementClass类和获取硬件的信息的用法
在.NET的项目中,有时候需要获取计算机的硬件的相关信息,在C#语言中需要利用ManagementClass这个类来进行相关操作. ManagementClass类:对表示一个通用信息模型 (CIM) ...
- ManagementClass类——ManagementClass 构造函数
初始化 ManagementClass 类的新实例. .NET Framework 安全性 完全信任直接调用方.此成员不能由部分受信任的代码使用.有关更多信息,请参见 通过部分受信任的代码使用库. ...
- ManagementClass类解析和C#如何获取硬件的相关信息
在.NET的项目中,有时候需要获取计算机的硬件的相关信息,在C#语言中需要利用ManagementClass这个类来进行相关操作. 现在先来介绍一下ManagementClass类,首先看一下类的继承 ...
- python中的新式类与旧式类的一些基于descriptor的概念(下)
3. Descriptor介绍 3.1 Descriptor代码示例 3.2 定义 3.3 Descriptor Protocol(协议) 3.4 Descriptor调用方法 4. 基于Descri ...
- python中的新式类与旧式类的一些基于descriptor的概念(上)
python中基于descriptor的一些概念(上) 1. 前言 2. 新式类与经典类 2.1 内置的object对象 2.2 类的方法 2.2.1 静态方法 2.2.2 类方法 2.3 新式类(n ...
- java 中常用的类
java 中常用的类 Math Math 类,包含用于执行基本数学运算的方法 常用API 取整 l static double abs(double a) 获取double 的绝对值 l sta ...
- python创建类的实例方法-Python中动态创建类实例的方法
简介 在Java中我们可以通过反射来根据类名创建类实例,那么在Python我们怎么实现类似功能呢? 其实在Python有一个builtin函数import,我们可以使用这个函数来在运行时动态加载一些模 ...
- 标准C++中的string类的用法总结
相信使用过MFC编程的朋友对CString这个类的印象应该非常深刻吧?的确,MFC中的CString类使用起来真的非常的方便好用.但是如果离开了MFC框架,还有没有这样使用起来非常方便的类呢?答案是肯 ...
- ASP.NET2.0中的ClientScriptManager 类用法—如何添加客户端事件!
在ASP.NET2.0中,ClientScriptManager 类通过键 String 和 Type 唯一地标识脚本.具有相同的键和类型的脚本被视为重复脚本.因此,我们可以使用脚本类型来避免混淆可能 ...
最新文章
- 从《2018年全球创新指数报告》看中国创新力!
- python用os模块自动打开软件_Python实现自动打开电脑应用的示例代码
- 【Python】Scrapy的安装与使用
- 宣布EAXY:在Java中简化XML
- 2020数学建模国赛C题思路
- 投后管理岗面试_2020天津水务招79人,管理岗+操作岗,专科起报
- matplotlib+numpy绘制二维条形直方图
- 77-CCI,Commodity Channel Index,商品通道指标.(2015.7.1)
- ubuntu 18.04安装搜狗输入法
- SpringCloud教程合集
- 信息系统分析与设计 第三章 信息系统建设概论
- sklearn 学习笔记 —— Nearest Neighbors
- mathematica动态模型的建模分析
- word在英文输入法的状态下,打出来的引号还是中文字符
- 一战赚了1090亿,“恐怖”的张一鸣!
- 【模式识别与机器学习】模式识别中的一些基本概念
- 电商精细化运营的五大关键指标和三个关键思路——笔记
- 海康威视 设备网络SDK
- 本题要求实现一个计算xn(n≥0)的函数。
- Anycodes,在线编程网站上线啦!支持六种编程语言,语法高亮,行数显示,和代码自动折叠。小伙伴们,请速度围观!
热门文章
- 机器人制作初学者的常见误区
- 全国英语二级计算机考试,全国计算机等级考试网上报名流程(国二,计算机二级)...
- mysql1085报错:ERROR 1805 (HY000): Column count of mysql.user is wrong. Expected 45, found 46. The tabl
- 了解数字隔离器安全使用的限制值
- linux无法同步数据库表,Linux数据库:MySQL主从同步设置和同步错误处理
- Android-P夜间模式
- Windows编程之使用GetAsyncKeyState()函数为什么要( 0x8000)?
- 设置IDEA中DB Navigator自动提交(Auto-Commit ON)
- AI首席架构师5-AICA-文心NLP大模型技术及应用
- 用echarts结合jsp,servlet生成统计图表