[C#] 获取计算机内部信息 - ComputerInfoHelper
获取计算机内部信息 - ComputerInfoHelper
电脑有许多信息,如名称、CPU 和硬盘容量等,整理一个 Helper 来获取,下面目前只整理了一个方法,获取其它信息的方法类似。
一、代码
ComputerInfoHelper.cs
using System;
using System.Linq;
using System.Management;
using Wen.Helpers.Common.Computer.Config; namespace Wen.Helpers.Common.Computer
{
/// <summary>
/// 计算机信息助手类
/// </summary>
public class ComputerInfoHelper
{
/// <summary>
/// 获取硬盘容量汇总
/// </summary>
public static long GetTotalDiskSize()
{
try
{
var diskDriveManagement = new ManagementClass(WmiPath.DiskDrive);
var diskDriveManagementInstances = diskDriveManagement.GetInstances(); return diskDriveManagementInstances.OfType<ManagementObject>()
.Select(managementObject => Convert.ToInt64(managementObject[ManagementBaseObjectPropertyName.Size]))
.Aggregate<long, long>(, (current, diskSize) => diskSize + current);
}
catch(Exception e)
{
Console.WriteLine(e);
throw;
}
}
}
}
ManagementBaseObjectPropertyName.cs
namespace Wen.Helpers.Common.Computer.Config
{
public class ManagementBaseObjectPropertyName
{
/// <summary>
/// 名称
/// </summary>
public const string ComputerName = "Name"; /// <summary>
/// 显卡芯片
/// </summary>
public const string VideoProcessor = "VideoProcessor"; /// <summary>
/// 显存大小
/// </summary>
public const string AdapterRam = "AdapterRAM"; /// <summary>
/// 分辨率宽
/// </summary>
public const string ScreenWidth = "ScreenWidth"; /// <summary>
/// 分辨率高
/// </summary>
public const string ScreenHeight = "ScreenHeight"; /// <summary>
/// 电脑型号
/// </summary>
public const string Version = "Version"; /// <summary>
/// 硬盘容量
/// </summary>
public const string Size = "Size"; /// <summary>
/// 内存容量
/// </summary>
public const string Capacity = "Capacity"; /// <summary>
/// cpu 核心数
/// </summary>
public const string NumberOfCores = "NumberOfCores";
}
}
WmiPath.cs
namespace Wen.Helpers.Common.Computer.Config
{
public class WmiPath
{
/// <summary>
/// 内存
/// </summary>
public const string PhysicalMemory = "Win32_PhysicalMemory"; /// <summary>
/// cpu
/// </summary>
public const string Processor = "Win32_Processor"; /// <summary>
/// 硬盘
/// </summary>
public const string DiskDrive = "win32_DiskDrive"; /// <summary>
/// 电脑型号
/// </summary>
public const string ComputerSystemProduct = "Win32_ComputerSystemProduct"; /// <summary>
/// 分辨率
/// </summary>
public const string DesktopMonitor = "Win32_DesktopMonitor"; /// <summary>
/// 显卡
/// </summary>
public const string VideoController = "Win32_VideoController"; /// <summary>
/// 操作系统
/// </summary>
public const string OperatingSystem = "Win32_OperatingSystem";
}
}
二、测试
1.电脑硬盘信息

2.我的电脑中的硬盘信息

3.测试代码

4.输出结果:

所有硬盘及 U 盘和存储卡,因生产厂家的计算方式和操作系统的计算方式不一样,前者按 1MB = 1000KB 计算,后者按 1MB = 1024KB 计算,所以,实际在电脑中看到的容量会与厂商标称的容量有一定的差异,其中规律为 1G = 0.93G (约等于),比如 100G,实际为 100G * 0.93 = 93G ,具体容量可参考此公式计算。
GitHub:https://github.com/liqingwen2015/Wen.Helpers/tree/liqw_home/Wen.Helpers.Common/Computer
[C#] 获取计算机内部信息 - ComputerInfoHelper的更多相关文章
- python wmi模块 获取windows内部信息
WMI (Windows Management Instrumentation) 模块可用于获取 Windows 内部信息,在使用Python获取Windows系统上的相关的信息可以使用WMI接口来获 ...
- 完善DriveInfoEx源代码 获取计算机硬盘序列号
概述: 获取计算机硬盘序列号用途很多,在网上找到了一个C++的源代码DriveInfoEx(点这里查看).非常好的一个DLL,.NET项目可以直接引用,而且源代码里有示例. 但这个DLL在Win7非管 ...
- 通过js获取计算机内网ip,计算机名,mac地址
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xht ...
- JAVA获取计算机的IP、名称、操作系统等信息
[java] view plaincopyprint? import java.io.BufferedReader; import java.io.InputStream; import java.i ...
- JAVA获取计算机CPU、硬盘、主板、网络等信息
通过使用第三方开源jar包sigar.jar我们可以获得本地的信息 1.下载sigar.jar sigar官方主页 sigar-1.6.4.zip 2.按照主页上的说明解压包后将相应的文件copy到j ...
- Python 获取计算机全名(fully qualified host name)
Python 获取计算机全名(fully qualified host name) import socket socket.getfqdn() socket.gethostname()
- [Java]通过java获取计算机名
通过java获取计算机名 String hostname = "Unknown"; try { InetAddress addr; addr = InetAddress.getLo ...
- C# 获取计算机cpu,硬盘,内存相关的信息
using System;using System.Management; namespace MmPS.Common.Helper{ /// <summary> /// 获取计算机相关的 ...
- 使用Python获取计算机名,ip地址,mac地址等等
获取计算机名 # 获取计算机名,常用的方法有三种 import os import socket # method one name = socket.gethostname() print(name ...
随机推荐
- 让你的Capslock键变废为宝
Capslock 键的劣性 如果你是 Windows 系统用户,就会发现,很多时候我们是用不到 Capslock 键的.Capslock 键是切换大小写的锁定,而在平常工作中,只要摁住 Shift 键 ...
- C#初学者们,请离代码生成器远点!!!
在程序开发的世界里,各路前辈们为了提高所谓的编码速度,搞出了各式各样的代码生成器,来避免所谓的重复的人为机械地粘贴和复制代码,以此来提高生产力. 早几年前,我可能会认为这样的做法真得有用,特别是在编码 ...
- 微信小程序登陆授权
小程序前端代码 function WXlogin(){ wx.login({ success: function (code) { wx.getUserInfo({ success:function( ...
- 认识Sass和Compass
第一章 Sass和Compass让样式表重焕青春 // 内容概要// 开始学习Sass和动态样式表// 用Sass更高效地写样式表// Compass简介// 用Compass迎接工程实践中的样式挑战 ...
- LibreOJ NOI Round #1 Day 1 B. 失控的未来交通工具
瞬间移动 官方题解 题意:一个带边权无向图,加边以及询问在 x,x+b,...,x+(c−1)bx,x+b,...,x+(c-1)bx,x+b,...,x+(c−1)b 这些数中,有多少存在一条与之模 ...
- C/C++中__builtin_popcount()的使用及原理
__builtin_popcount()用于计算一个 32 位无符号整数有多少个位为1 Counting out the bits 可以很容易的判断一个数是不是2的幂次:清除最低的1位(见上面 ...
- NYoj289苹果(0-1背包)
苹果 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 ctest有n个苹果,要将它放入容量为v的背包.给出第i个苹果的大小和价钱,求出能放入背包的苹果的总价钱最大值. 输 ...
- C#、.NET Framework、CLR的关系
很多人没有将C#..NET Framework(.NET框架).CLR(Common Language Runtime,公共语言运行库)这三者之间的关系区分清楚,认为其版本号是一一对应的.其实不然,. ...
- 【C#附源码】数据库文档生成工具支持(Excel+Htm)
数据库文档生成工具是用C#开发的基于NPOI组件的小工具.软件源码大小不到10MB.支持生成Excel 和Html 两种文档形式.了解更多,请访问:http://www.oschina.net/cod ...
- [国嵌攻略][164][USB驱动程序设计]
USB驱动模型 1.USB host controller driver(主控器驱动):为USB主控制器提供驱动程序 2.USB core(USB核心):连接USB主控制器驱动和USB设备驱动 3.U ...