[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 ...
随机推荐
- [PHP] PHP服务器接口SAPI中的结构体
SAPI:在各个服务器抽象层之间遵守着相同的约定,这里我们称之为SAPI接口.例如命令行程序的实现,Apache的mod_php模块实现以及fastcgi的实现等等 1.结构体:使用结构体(Struc ...
- org.springframework.expression.spel.SpelEvaluationException: EL1004E: Method call: Method service() cannot be found on com.my.blog.springboot.thymeleaf.util.MethodTest type
前言 本文中提到的解决方案,源码地址在:springboot-thymeleaf,希望可以帮你解决问题. 至于为什么已经写了一篇文章thymeleaf模板引擎调用java类中的方法,又多此一举的单独整 ...
- Git知识总览(三) 分支的创建、删除、切换、合并以及冲突解决
前两篇博客集中的聊了git的一些常用命令,具体请参见<Git知识总览(一) 从 git clone 和 git status 谈起>.<Git知识总览(二) git常用命令概览> ...
- cs231n spring 2017 lecture13 Generative Models 听课笔记
1. 非监督学习 监督学习有数据有标签,目的是学习数据和标签之间的映射关系.而无监督学习只有数据,没有标签,目的是学习数据额隐藏结构. 2. 生成模型(Generative Models) 已知训练数 ...
- 2017"百度之星"程序设计大赛 - 资格赛【1001 Floyd求最小环 1002 歪解(并查集),1003 完全背包 1004 01背包 1005 打表找规律+卡特兰数】
度度熊保护村庄 Accepts: 13 Submissions: 488 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/3276 ...
- [51nod1743]雪之国度
雪之国度有N座城市,依次编号为1到N,又有M条道路连接了其中的城市,每一条道路都连接了不同的2个城市,任何两座不同的城市之间可能不止一条道路. 雪之女王赋予了每一座城市不同的能量,其中第i座城市被赋予 ...
- dblink实现不同用户之间的数据表访问
1.dblink 1.创建dblink,如果在用户A下创建dblink,名称为TEST_DBLINK; 去操作GCFR_33用户下的表数据等等, 那么在查询表数据的sql就要加上dblink了.如下是 ...
- Netty5序章之BIO NIO AIO演变
Netty5序章之BIO NIO AIO演变 Netty是一个提供异步事件驱动的网络应用框架,用以快速开发高性能.高可靠的网络服务器和客户端程序.Netty简化了网络程序的开发,是很多框架和公司都在使 ...
- 如何开发由Create-React-App 引导的应用(三)
此文章是翻译How to develop apps bootstrapped with Create React App 官方文档 系列文章 如何开发由Create-React-App 引导的应用 如 ...
- dede list列表页和文章页分别使用if else
标签: dede 2015-01-25 19:33 755人阅读 评论(0) 收藏 举报 分类: [ Dede ](20) 版权声明:本文为博主原创文章,未经博主允许不得转载. list列表页中使用i ...