C# 获取计算机内存信息

本章讲述:使用C# 获取计算机内存信息

    在C#中获取计算机的内存信息可以通过多种方式实现,其中一种常用的方法是使用 System.Management 命名空间来查询WMI(Windows Management Instrumentation)服务。以下是一个示例代码,展示如何获取计算机的总内存、可用内存等信息。

  示例代码

    创建一个新的C#控制台应用程序项目:

  打开Visual Studio。

    创建一个名为 MemoryInfoApp 的控制台应用程序项目。

    添加必要的命名空间:using System.Management;

using System;
using System.Management;

namespace MemoryInfoApp
{
    class Program
    {
        static void Main(string[] args)
        {
            try
            {
                // 获取内存信息
                ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMemory");

                foreach (ManagementObject queryObj in searcher.Get())
                {
                    Console.WriteLine($"Total Capacity: {queryObj["Capacity"]} bytes");
                    Console.WriteLine($"Bank Label: {queryObj["BankLabel"]}");
                    Console.WriteLine($"Caption: {queryObj["Caption"]}");
                    Console.WriteLine($"Configured Clock Speed: {queryObj["ConfiguredClockSpeed"]} Hz");
                    Console.WriteLine($"Error Correction Type: {queryObj["ErrorCorrectionType"]}");
                    Console.WriteLine($"Form Factor: {queryObj["FormFactor"]}");
                    Console.WriteLine($"Manufacturer: {queryObj["Manufacturer"]}");
                    Console.WriteLine($"Memory Technology: {queryObj["MemoryTechnology"]}");
                    Console.WriteLine($"Part Number: {queryObj["PartNumber"]}");
                    Console.WriteLine($"Speed: {queryObj["Speed"]} MHz");
                    Console.WriteLine($"Status: {queryObj["Status"]}");
                    Console.WriteLine($"Type Detail: {queryObj["TypeDetail"]}");
                }

                // 获取系统总的物理内存
                ManagementObjectSearcher searcher2 = new ManagementObjectSearcher("SELECT * FROM Win32_ComputerSystem");

                foreach (ManagementObject queryObj in searcher2.Get())
                {
                    long totalMemoryInMB = Convert.ToInt64(queryObj["TotalPhysicalMemory"]) / 1024 / 1024;
                    Console.WriteLine($"Total Physical Memory: {totalMemoryInMB} MB");
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine($"Error: {ex.Message}");
            }

            Console.ReadLine();
        }
    }
}

解释
  WMI查询:
    使用 ManagementObjectSearcher 类来查询WMI服务。
    查询 Win32_PhysicalMemory 类获取每个物理内存条的信息,如容量、标签等。
    查询 Win32_ComputerSystem 类获取系统的总物理内存。

运行项目
    编译并运行项目。
    你将看到控制台输出计算机的内存信息,包括每个内存条的具体信息以及总的物理内存大小。

注意事项
    确保你的系统上安装了WMI服务,并且权限足够访问这些信息。
    在某些情况下,可能需要管理员权限来获取完整的硬件信息。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值