获取计算机内部信息 - 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的更多相关文章

  1. python wmi模块 获取windows内部信息

    WMI (Windows Management Instrumentation) 模块可用于获取 Windows 内部信息,在使用Python获取Windows系统上的相关的信息可以使用WMI接口来获 ...

  2. 完善DriveInfoEx源代码 获取计算机硬盘序列号

    概述: 获取计算机硬盘序列号用途很多,在网上找到了一个C++的源代码DriveInfoEx(点这里查看).非常好的一个DLL,.NET项目可以直接引用,而且源代码里有示例. 但这个DLL在Win7非管 ...

  3. 通过js获取计算机内网ip,计算机名,mac地址

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xht ...

  4. JAVA获取计算机的IP、名称、操作系统等信息

    [java] view plaincopyprint? import java.io.BufferedReader; import java.io.InputStream; import java.i ...

  5. JAVA获取计算机CPU、硬盘、主板、网络等信息

    通过使用第三方开源jar包sigar.jar我们可以获得本地的信息 1.下载sigar.jar sigar官方主页 sigar-1.6.4.zip 2.按照主页上的说明解压包后将相应的文件copy到j ...

  6. Python 获取计算机全名(fully qualified host name)

    Python 获取计算机全名(fully qualified host name) import socket socket.getfqdn() socket.gethostname()

  7. [Java]通过java获取计算机名

    通过java获取计算机名 String hostname = "Unknown"; try { InetAddress addr; addr = InetAddress.getLo ...

  8. C# 获取计算机cpu,硬盘,内存相关的信息

    using System;using System.Management; namespace MmPS.Common.Helper{ /// <summary> /// 获取计算机相关的 ...

  9. 使用Python获取计算机名,ip地址,mac地址等等

    获取计算机名 # 获取计算机名,常用的方法有三种 import os import socket # method one name = socket.gethostname() print(name ...

随机推荐

  1. java 读取数据库中文信息,为何在jsp页面中出现乱码

    有如下几种解决办法:1.保证项目的字符编码和每一个jsp页面的字符编码一致,如果不一致可能导致中文乱码问题<%@ page language="java" contentTy ...

  2. MyEclipse10.7 10.6导出war文件报错 “SECURITY ALERT: INTEGERITY CHECK ERROR”

    myeclipse10.7的版本破解后,导出war包时报“SECURITY ALERT: INTEGERITY CHECK ERROR”的错误. 经过测试本次破解可以解决此错误,只需替换一个jar文件 ...

  3. Meltdown攻击

    Meltdown攻击处理器A级漏洞MELTDOWN(熔毁)和SPECTRE(幽灵)分析报告AntiyLabs • 2018年01月05日 • 漏洞 • 阅读 1162一.概述安天应急处理中心在2018 ...

  4. CTF---密码学入门第七题 杯酒人生

    杯酒人生分值:10 来源: Veneno 难度:易 参与人数:2633人 Get Flag:790人 答题人数:963人 解题通过率:82% 使用古典密码 一喵星人要想喵星发送一段不知道干什么用的密码 ...

  5. 北京师范大学校赛C

    https://www.nowcoder.com/acm/contest/submit/0dff89ad7b8444719df155d507f3e1dd?ACMContestId=3&tagI ...

  6. JqGrid 多行表头设置

    1.我想要统计的效果是这样的 2.只要在初始化表格中加上如下代码就可以了: jQuery("#tbAbroadStatisticByUnit").jqGrid('setGroupH ...

  7. 使用Eclipse在Excel中找出两张表中相同证件号而姓名或工号却出现不同的的项

    1:首先把Excel中的文本复制到txt中,复制如下: A表: 证件号                           工号  姓名 310110xxxx220130004 101 傅家宜3101 ...

  8. SpringBoot介绍及环境搭建

    什么是SpringBoot Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不 ...

  9. 一步一步创建ASP.NET MVC5程序[Repository+Autofac+Automapper+SqlSugar](六)

    前言 大家好,我是Rector 又是星期五,很兴奋,很高兴,很high...啦啦啦... Rector在图享网又和大家见面啦!!!上一篇<一步一步创建ASP.NET MVC5程序[Reposit ...

  10. linux下 ls -l 命令显示结果每一列代表什么意思

    第一个栏位,表示文件的属性.Linux的文件基本上分为三个属性:可读(r),可写(w),可执行(x).但是这里有十个格子可以添(具体程序实现时,实际上是十个bit位).第一个小格是特殊表示格,表示目录 ...