zoukankan      html  css  js  c++  java
  • C# 获取计算机信息(操作系统信息、系统信息、主板、处理器、硬盘、内存、显卡)

    一、计算机操作系统信息

        (1)获取操作系统版本描述

     /// <summary>
     /// 操作系统版本
     /// </summary>
     public static string OSDescription { get; } = System.Runtime.InteropServices.RuntimeInformation.OSDescription;
    View Code

        (2)获取操作系统架构

            /// <summary>
            /// 操作系统架构(<see cref="Architecture">/// </summary>
            public static string OSArchitecture { get; } = System.Runtime.InteropServices.RuntimeInformation.OSArchitecture.ToString();
    View Code

        (3)判断操作系统是否为指定的操作系统

            /// <summary>
            /// 是否为Windows操作系统
            /// </summary>
            public static bool IsOSPlatform { get; } = System.Runtime.InteropServices.RuntimeInformation.IsOSPlatform(System.Runtime.InteropServices.OSPlatform.Windows);
    View Code

    二、计算机基本系统信息

            通过 VMI中的 ManagementClass 类输入路径 “Win32_ComputerSystemProduct”,可获取电脑型号、UUID等基本信息,全部如下:

           /// <summary>
            /// 电脑型号
            // Caption:计算机系统产品
            // Description:计算机系统产品
            // ElementName:
            // IdentifyingNumber:CND0162XZ1
            // InstanceID:
            // Name:HP ENVY x360 Convertible 15-ed0xxx
            // SKUNumber:
            // UUID:A6C31C0E-997C-EA11-8104-B05CDA905B6C
            // Vendor:HP
            // Version:Type1ProductConfigId
            // WarrantyDuration:
            // WarrantyStartDate:
            /// </summary>
            /// <returns></returns>
            public static string GetComputerVersion()
            {
                var version = new StringBuilder();
                var moc = new ManagementClass("Win32_ComputerSystemProduct").GetInstances();
                foreach (ManagementObject mo in moc)
                {
                    foreach (var item in mo.Properties)
                    {
                        version.Append($"{item.Name}:{item.Value}
    ");
                    }
                }
                return version.ToString(); ;
            }
    View Code

    三、计算机主板信息

            通过 VMI中的 ManagementClass 类输入路径 “Win32_BaseBoard”,可获取主板型号、主板标识等基本信息,全部如下:

            /// <summary>
            /// 主板信息
            // Caption:简短说明
            // ConfigOptions:数组,表示位于在底板上跳线和开关的配置
            // CreationClassName:表示类的名称(就是Win32_baseboard类)
            // Depth:对象的描述(底板)
            // Description:基板
            // Height:
            // HostingBoard:如果为TRUE,该卡是一个主板,或在一个机箱中的基板。
            // HotSwappable:如果为TRUE,就是支持热插拔(判断是否支持热插拔)
            // InstallDate:
            // Manufacturer:表示制造商的名称
            // Model:
            // Name:对象的名称标签
            // OtherIdentifyingInfo:
            // PartNumber:
            // PoweredOn:如果为真,物理元素处于开机状态
            // Product:产品的型号
            // Removable:判断是否可拆卸的
            // Replaceable:判断是否可更换的
            // RequirementsDescription:
            // RequiresDaughterBoard:False
            // SerialNumber:制造商分配的用于识别所述物理元件数目
            // SKU:
            // SlotLayout:
            // SpecialRequirements:
            // Status:对象的当前状态
            // Tag:符系统的基板唯一标识
            // Version:08.32
            // Weight:
            // Width:
            /// </summary>
            /// <returns></returns>
            public static string GetBaseBoardInfo()
            {
                var baseBoard = new StringBuilder();
                var moc = new ManagementClass("Win32_BaseBoard").GetInstances();
                foreach (ManagementObject mo in moc)
                {
                    foreach (var item in mo.Properties)
                    {
                        baseBoard.Append($"{item.Name}:{item.Value}
    ");
                    }
                }
                return baseBoard.ToString();
            }
    View Code

    四、计算机处理器信息

            通过 VMI中的 ManagementClass 类输入路径 “Win32_Processor”,可获取CPU个数、最高主频、当前主频等基本信息,全部如下:

            /// <summary>
            /// 处理器信息(<see cref="https://www.cnblogs.com/zhesong/p/wmiid.html">
            //  AddressWidth:在32位操作系统,该值是32,在64位操作系统是64
            //  Architecture:所使用的平台的处理器架构
            //  AssetTag:代表该处理器的资产标签
            //  Availability:设备的状态
            //  Caption:设备的简短描述
            //  Characteristics:处理器支持定义的功能
            //  ConfigManagerErrorCode:Windows API的配置管理器错误代码
            //  ConfigManagerUserConfig:如果为TRUE,该装置是使用用户定义的配置
            //  CpuStatus:处理器的当前状态
            //  CreationClassName:出现在用来创建一个实例继承链的第一个具体类的名称
            //  CurrentClockSpeed:处理器的当前速度,以MHz为单位
            //  CurrentVoltage:处理器的电压。如果第八位被设置,位0-6包含电压乘以10,如果第八位没有置位,则位在VoltageCaps设定表示的电压值。 CurrentVoltage时SMBIOS指定的电压值只设置
            //  DataWidth:在32位处理器,该值是32,在64位处理器是64
            //  Description:描述
            //  DeviceID:在系统上的处理器的唯一标识符
            //  ErrorCleared:如果为真,报上一个错误代码的被清除
            //  ErrorDescription:错误的代码描述
            //  ExtClock:外部时钟频率,以MHz为单位
            //  Family:处理器系列类型
            //  InstallDate:安装日期
            //  L2CacheSize:二级缓存大小
            //  L2CacheSpeed:二级缓存处理器的时钟速度
            //  L3CacheSize:三级缓存大小
            //  L3CacheSpeed:三级缓存处理器的时钟速度
            //  LastErrorCode:报告的逻辑设备上一个错误代码
            //  Level:处理器类型的定义。该值取决于处理器的体系结构
            //  LoadPercentage:每个处理器的负载能力,平均到最后一秒
            //  Manufacturer:处理器的制造商
            //  MaxClockSpeed:处理器的最大速度,以MHz为单位
            //  Name:处理器的名称
            //  NumberOfCores:处理器的当前实例的数目。核心是在集成电路上的物理处理器
            //  NumberOfEnabledCore:每个处理器插槽启用的内核数
            //  NumberOfLogicalProcessors:用于处理器的当前实例逻辑处理器的数量
            //  OtherFamilyDescription:处理器系列类型
            //  PartNumber:这款处理器的产品编号制造商所设置
            //  PNPDeviceID:即插即用逻辑设备的播放设备标识符
            //  PowerManagementCapabilities:逻辑设备的特定功率相关的能力阵列
            //  PowerManagementSupported:如果为TRUE,该装置的功率可以被管理,这意味着它可以被放入挂起模式
            //  ProcessorId:描述处理器功能的处理器的信息
            //  ProcessorType:处理器的主要功能
            //  Revision:系统修订级别取决于体系结构
            //  Role:所述处理器的作用
            //  SecondLevelAddressTranslationExtensions:如果为True,该处理器支持用于虚拟地址转换扩展
            //  SerialNumber:处理器的序列号
            //  SocketDesignation:芯片插座的线路上使用的类型
            //  Status:对象的当前状态
            //  StatusInfo:对象的当前状态信息
            //  Stepping:在处理器家族处理器的版本
            //  SystemCreationClassName:创建类名属性的作用域计算机的价值
            //  SystemName:系统的名称
            //  ThreadCount:每个处理器插槽的线程数
            //  UniqueId:全局唯一标识符的处理器
            //  UpgradeMethod:CPU插槽的信息
            //  Version:依赖于架构处理器的版本号
            //  VirtualizationFirmwareEnabled:如果真,固件可以虚拟化扩展
            //  VMMonitorModeExtensions:如果为True,该处理器支持Intel或AMD虚拟机监控器扩展。
            //  VoltageCaps:该处理器的电压的能力
            /// </summary>
            /// <returns></returns>
            public static string GetCPUInfo()
            {
                var cpu = new StringBuilder();
                var moc = new ManagementClass("Win32_Processor").GetInstances();
                foreach (var mo in moc)
                {
                    foreach (var item in mo.Properties)
                    {
                        cpu.Append($"{item.Name}:{item.Value}
    ");
                    }
                }
                return cpu.ToString();
            }
    View Code

    五、计算机内存信息

            通过 VMI中的 ManagementClass 类输入路径 “Win32_PhysicalMemory”,可获取内存总大小等基本信息,输入路径 “Win32_PerfRawData_PerfOS_Memory”,可获取可利用内存大小等基本信息,全部如下:

            /// <summary>
            /// 内存信息(<see cref="https://www.cnblogs.com/zhesong/p/wmiid.html">
            //  Attributes:1
            //  BankLabel:BANK 2
            //  Capacity:获取内存容量(单位KB)
            //  Caption:物理内存还虚拟内存
            //  ConfiguredClockSpeed:配置时钟速度
            //  ConfiguredVoltage:配置电压
            //  CreationClassName:创建类名
            //  DataWidth:获取内存带宽
            //  Description:描述
            //  DeviceLocator:获取设备定位器
            //  FormFactor:构成因素
            //  HotSwappable:是否支持热插拔
            //  InstallDate:安装日期
            //  InterleaveDataDepth:数据交错深度
            //  InterleavePosition:数据交错的位置
            //  Manufacturer:生产商
            //  MaxVoltage:最大电压
            //  MemoryType:内存类型
            //  MinVoltage:最小电压
            //  Model:型号
            //  Name:名字
            //  OtherIdentifyingInfo:其他识别信息
            //  PartNumber:零件编号
            //  PositionInRow:行位置
            //  PoweredOn:是否接通电源
            //  Removable:是否可拆卸
            //  Replaceable:是否可更换
            //  SerialNumber:编号
            //  SKU:SKU号
            //  SMBIOSMemoryType:SMBIOS内存类型
            //  Speed:速率
            //  Status:状态
            //  Tag:唯一标识符的物理存储器
            //  TotalWidth:总宽
            //  TypeDetail:类型详细信息
            //  Version:版本信息
            //  AvailableBytes:可利用内存大小(B)
            //  AvailableKBytes:可利用内存大小(KB)
            //  AvailableMBytes:可利用内存大小(MB)
            //  CacheBytes:125460480
            //  CacheBytesPeak:392294400
            //  CacheFaultsPersec:70774721
            //  Caption:
            //  CommitLimit:31939616768
            //  CommittedBytes:20280020992
            //  DemandZeroFaultsPersec:759274721
            //  Description:
            //  FreeAndZeroPageListBytes:2097152
            //  FreeSystemPageTableEntries:12528527
            //  Frequency_Object:0
            //  Frequency_PerfTime:10000000
            //  Frequency_Sys100NS:10000000
            //  LongTermAverageStandbyCacheLifetimes:14400
            //  ModifiedPageListBytes:41500672
            //  Name:
            //  PageFaultsPersec:1560432075
            //  PageReadsPersec:19173703
            //  PagesInputPersec:98834167
            //  PagesOutputPersec:25921396
            //  PagesPersec:124755563
            //  PageWritesPersec:103362
            //  PercentCommittedBytesInUse:2727084283
            //  PercentCommittedBytesInUse_Base:4294967295
            //  PoolNonpagedAllocs:0
            //  PoolNonpagedBytes:798519296
            //  PoolPagedAllocs:0
            //  PoolPagedBytes:709898240
            //  PoolPagedResidentBytes:496873472
            //  StandbyCacheCoreBytes:247545856
            //  StandbyCacheNormalPriorityBytes:847036416
            //  StandbyCacheReserveBytes:0
            //  SystemCacheResidentBytes:125460480
            //  SystemCodeResidentBytes:0
            //  SystemCodeTotalBytes:0
            //  SystemDriverResidentBytes:17592179236864
            //  SystemDriverTotalBytes:16953344
            //  Timestamp_Object:0
            //  Timestamp_PerfTime:5838028983825
            //  Timestamp_Sys100NS:132532052633540000
            //  TransitionFaultsPersec:792343233
            //  TransitionPagesRePurposedPersec:78554340
            //  WriteCopiesPersec:17253788
            /// </summary>
            /// <returns></returns>
            public static string GetRAMInfo()
            {
                var ram = new StringBuilder();
                var searcher = new ManagementObjectSearcher()
                {
                    Query = new SelectQuery("Win32_PhysicalMemory"),
                }.Get().GetEnumerator();
    
                while (searcher.MoveNext())
                {
                    ManagementBaseObject baseObj = searcher.Current;
                    foreach (var item in baseObj.Properties)
                    {
                        ram.Append($"{item.Name}:{item.Value}
    ");
                    }
                }
    
                searcher = new ManagementObjectSearcher()
                {
                    Query = new SelectQuery("Win32_PerfRawData_PerfOS_Memory"),
                }.Get().GetEnumerator();
    
                while (searcher.MoveNext())
                {
                    ManagementBaseObject baseObj = searcher.Current;
                    foreach (var item in baseObj.Properties)
                    {
                        ram.Append($"{item.Name}:{item.Value}
    ");
                    }
                }
                return ram.ToString();
            }
    View Code

    六、计算机显卡信息

            通过 VMI中的 ManagementClass 类输入路径 “Win32_VideoController”,可获取显卡类型、屏幕分辨率等基本信息,全部如下:

            /// <summary>
            /// 显卡信息
            //  AcceleratorCapabilities:
            //  AdapterCompatibility:Intel Corporation
            //  AdapterDACType:Internal
            //  AdapterRAM:1073741824
            //  Availability:3
            //  CapabilityDescriptions:
            //  Caption:Intel(R) UHD Graphics
            //  ColorTableEntries:
            //  ConfigManagerErrorCode:0
            //  ConfigManagerUserConfig:False
            //  CreationClassName:Win32_VideoController
            //  CurrentBitsPerPixel:32
            //  CurrentHorizontalResolution:1920
            //  CurrentNumberOfColors:4294967296
            //  CurrentNumberOfColumns:0
            //  CurrentNumberOfRows:0
            //  CurrentRefreshRate:60
            //  CurrentScanMode:4
            //  CurrentVerticalResolution:1080
            //  Description:Intel(R) UHD Graphics
            //  DeviceID:VideoController1
            //  DeviceSpecificPens:
            //  DitherType:0
            //  DriverDate:20200109000000.000000-000
            //  DriverVersion:26.20.100.7755
            //  ErrorCleared:
            //  ErrorDescription:
            //  ICMIntent:
            //  ICMMethod:
            //  InfFilename:oem41.inf
            //  InfSection:iCML_w10_DS
            //  InstallDate:
            //  InstalledDisplayDrivers:C:windowsSystem32DriverStoreFileRepositoryiigd_dch.inf_amd64_d512f7a0dbcb7a2figdumdim64.dll,C:windowsSystem32DriverStoreFileRepositoryiigd_dch.inf_amd64_d512f7a0dbcb7a2figd10iumd64.dll,C:windowsSystem32DriverStoreFileRepositoryiigd_dch.inf_amd64_d512f7a0dbcb7a2figd10iumd64.dll,C:windowsSystem32DriverStoreFileRepositoryiigd_dch.inf_amd64_d512f7a0dbcb7a2figd12umd64.dll
            //  LastErrorCode:
            //  MaxMemorySupported:
            //  MaxNumberControlled:
            //  MaxRefreshRate:75
            //  MinRefreshRate:50
            //  Monochrome:False
            //  Name:Intel(R) UHD Graphics
            //  NumberOfColorPlanes:
            //  NumberOfVideoPages:
            //  PNPDeviceID:PCIVEN_8086&DEV_9B41&SUBSYS_8757103C&REV_023&11583659&2&10
            //  PowerManagementCapabilities:
            //  PowerManagementSupported:
            //  ProtocolSupported:
            //  ReservedSystemPaletteEntries:
            //  SpecificationVersion:
            //  Status:OK
            //  StatusInfo:
            //  SystemCreationClassName:Win32_ComputerSystem
            //  SystemName:DESKTOP-OLA70V5
            //  SystemPaletteEntries:
            //  TimeOfLastReset:
            //  VideoArchitecture:5
            //  VideoMemoryType:2
            //  VideoMode:
            //  VideoModeDescription:屏幕描述
            //  VideoProcessor:Intel(R) UHD Graphics Family
            //  AcceleratorCapabilities:
            //  AdapterCompatibility:NVIDIA
            //  AdapterDACType:Integrated RAMDAC
            //  AdapterRAM:4293918720
            //  Availability:8
            //  CapabilityDescriptions:
            //  Caption:显卡描述
            //  ColorTableEntries:
            //  ConfigManagerErrorCode:0
            //  ConfigManagerUserConfig:False
            //  CreationClassName:Win32_VideoController
            //  CurrentBitsPerPixel:
            //  CurrentHorizontalResolution:
            //  CurrentNumberOfColors:
            //  CurrentNumberOfColumns:
            //  CurrentNumberOfRows:
            //  CurrentRefreshRate:
            //  CurrentScanMode:
            //  CurrentVerticalResolution:
            //  Description:NVIDIA GeForce MX330
            //  DeviceID:VideoController2
            //  DeviceSpecificPens:
            //  DitherType:
            //  DriverDate:20200923000000.000000-000
            //  DriverVersion:27.21.14.5241
            //  ErrorCleared:
            //  ErrorDescription:
            //  ICMIntent:
            //  ICMMethod:
            //  InfFilename:oem123.inf
            //  InfSection:Section043
            //  InstallDate:
            //  InstalledDisplayDrivers:C:windowsSystem32DriverStoreFileRepository
    vhm.inf_amd64_c87780efe1918cc5
    vldumdx.dll,C:windowsSystem32DriverStoreFileRepository
    vhm.inf_amd64_c87780efe1918cc5
    vldumdx.dll,C:windowsSystem32DriverStoreFileRepository
    vhm.inf_amd64_c87780efe1918cc5
    vldumdx.dll,C:windowsSystem32DriverStoreFileRepository
    vhm.inf_amd64_c87780efe1918cc5
    vldumdx.dll
            //  LastErrorCode:
            //  MaxMemorySupported:
            //  MaxNumberControlled:
            //  MaxRefreshRate:
            //  MinRefreshRate:
            //  Monochrome:False
            //  Name:NVIDIA GeForce MX330
            //  NumberOfColorPlanes:
            //  NumberOfVideoPages:
            //  PNPDeviceID:PCIVEN_10DE&DEV_1D16&SUBSYS_8757103C&REV_A14&24375CB2&0&00E0
            //  PowerManagementCapabilities:
            //  PowerManagementSupported:
            //  ProtocolSupported:
            //  ReservedSystemPaletteEntries:
            //  SpecificationVersion:
            //  Status:OK
            //  StatusInfo:
            //  SystemCreationClassName:Win32_ComputerSystem
            //  SystemName:DESKTOP-OLA70V5
            //  SystemPaletteEntries:
            //  TimeOfLastReset:
            //  VideoArchitecture:5
            //  VideoMemoryType:2
            //  VideoMode:
            //  VideoModeDescription:
            //  VideoProcessor:GeForce MX330
            /// </summary>
            /// <returns></returns>
            public static string GetGPUInfo()
            {
                var gpu = new StringBuilder();
                var moc = new ManagementObjectSearcher("select * from Win32_VideoController").Get();
    
                foreach (var mo in moc)
                {
                    foreach (var item in mo.Properties)
                    {
                        gpu.Append($"{item.Name}:{item.Value}
    ");
                    }
                }
                return gpu.ToString(); ;
            }
    View Code

    七、计算机硬盘信息

            通过 VMI中的 ManagementClass 类输入路径 “Win32_LogicalDisk”,可获取硬盘分区名称、各分区总容量、可利用容量,全部如下:

            /// <summary>
            /// 硬盘驱动器信息(<see cref="https://www.cnblogs.com/zhesong/p/wmiid.html">
            //  Access:0
            //  Availability:
            //  BlockSize:
            //  Caption:硬盘描述,例如“C:”
            //  Compressed:False
            //  ConfigManagerErrorCode:Windows配置管理器错误代码
            //  ConfigManagerUserConfig:如果为True,该设备使用用户定义的配置
            //  CreationClassName:Win32_LogicalDisk
            //  Description:本地固定磁盘
            //  DeviceID:磁盘驱动器与系统中的其他设备的唯一标识符,例如“C:”
            //  DriveType:3
            //  ErrorCleared:如果为True,报告LastErrorCode错误现已清除
            //  ErrorDescription:关于可能采取的纠正措施记录在LastErrorCode错误,和信息的详细信息
            //  ErrorMethodology:误差检测和校正的类型被此设备支持
            //  FileSystem:NTFS
            //  FreeSpace:可使用硬盘大小
            //  InstallDate:
            //  LastErrorCode:
            //  MaximumComponentLength:255
            //  MediaType:由该设备使用或访问的媒体类型
            //  Name:硬盘名字
            //  NumberOfBlocks:
            //  PNPDeviceID:即插即用逻辑设备的播放设备标识符
            //  PowerManagementCapabilities:
            //  PowerManagementSupported:
            //  ProviderName:
            //  Purpose:
            //  QuotasDisabled:True
            //  QuotasIncomplete:False
            //  QuotasRebuilding:False
            //  Size:硬盘总大小
            //  Status:对象的当前状态
            //  StatusInfo:逻辑设备的状态
            //  SupportsDiskQuotas:True
            //  SupportsFileBasedCompression:True
            //  SystemCreationClassName:Win32_ComputerSystem
            //  SystemName:DESKTOP-OLA70V5
            //  VolumeDirty:False
            //  VolumeName:Windows
            //  VolumeSerialNumber:硬盘的序列号
            /// </summary>
            /// <returns></returns>
            public static string GetDiskInfo()
            {
                var disk = new StringBuilder();
                var moc = new ManagementClass("Win32_LogicalDisk").GetInstances();
                foreach (ManagementObject mo in moc)
                {
                    foreach (var item in mo.Properties)
                    {
                        disk.Append($"{item.Name}:{item.Value}
    ");
                    }
                }
                return disk.ToString();
            }
    View Code

            github地址:https://github.com/Dwayne112401/ComputerInfo.git

  • 相关阅读:
    Laya中使用Protobuf
    Laya中第三方库的使用
    Laya的骨骼换装
    Laya的粒子效果
    Laya的预设Prefab (预制件)
    Egret EUI Tab + ViewStack
    Egret 划线手势动画 (切水果)
    Egret3.2.6老项目转成5.2.22微信小游戏,遇到exml加载不了问题
    AndroidUI设计 之 图片浏览器
    Android应用的自动更新模块
  • 原文地址:https://www.cnblogs.com/dongweian/p/14182576.html
Copyright © 2011-2022 走看看