C# 获取内存和CPU信息的源码

将内容过程中经常用的一些内容段备份一下,如下资料是关于C# 获取内存和CPU信息的的内容,希望能对大伙有一些用。

using System.Collections;
using System.Collections.Generic;
using System.Management;
using System.Text;

namespace MergeSystem.Indexus.WinServiceCommon.SystemManagement
{
public class Cpu
{
public static void LogCpuData()
{
System.Collections.ArrayList result = new System.Collections.ArrayList();
ManagementScope mgmtScope = new ManagementScope(@"/. ootcimv2");
mgmtScope.Connect();

        ManagementPath mp = new ManagementPath("Win32_Processor");
        ManagementClass mc = new ManagementClass(mgmtScope, mp, null);
        ManagementObjectCollection procs = mc.GetInstances();

        foreach (ManagementObject mo in procs)
        {
            foreach (PropertyData pd in mo.Properties)
            {
                switch (pd.Name)
                {
                    case "DeviceID":
                    case "Name":
                    case "LoadPercentage":
                        Console.WriteLine(@"Name: {0}; Value: {1}", pd.Name, pd.Value == null ? string.Empty : pd.Value.ToString().Trim());
                        Handler.LogHandler.Info(string.Format(@"Name: {0}; Value: {1}", pd.Name, pd.Value == null ? string.Empty : pd.Value.ToString().Trim()));
                        Handler.LogHandler.MemoryFatalException(string.Format(@"Name: {0}; Value: {1}", pd.Name, pd.Value == null ? string.Empty : pd.Value.ToString().Trim()));

                        break;
                }
            }
            Console.WriteLine(@" --- ");
            Handler.LogHandler.Info(@" --- ");
        }
    }
}

}

获取内存信息

using System;
using System.Collections;
using System.Collections.Generic;
using System.Management;
using System.Text;

namespace MergeSystem.Indexus.WinServiceCommon.SystemManagement
{
public class Memory
{

    public static void LogMemoryData()
    {
        ManagementScope mgmtScope = new ManagementScope(@"/. ootcimv2");
        mgmtScope.Connect();

        ManagementPath mp = new ManagementPath("Win32_OperatingSystem");
        ManagementClass mc = new ManagementClass(mgmtScope, mp, null);
        ManagementObjectCollection procs = mc.GetInstances();

        foreach (ManagementObject mo in procs)
        {
            foreach (PropertyData pd in mo.Properties)
            {
                switch (pd.Name)
                {
                    case "BuildNumber":
                    case "BuildType":
                    case "Caption":
                    case "CountryCode":
                    case "CSDVersion":
                    case "CSName":
                    case "CurrentTimeZone":
                    case "FreePhysicalMemory":
                    case "FreeSpaceInPagingFiles":
                    case "FreeVirtualMemory":
                    case "LastBootUpTime":
                    case "MaxNumberOfProcesses":
                    case "MaxProcessMemorySize":
                    case "NumberOfProcesses":
                    case "NumberOfUsers":
                    case "Organization":
                    case "OSLanguage":
                    case "RegisteredUser":
                    case "SerialNumber":
                    case "ServicePackMajorVersion":
                    case "ServicePackMinorVersion":
                    case "SizeStoredInPagingFiles":
                    case "SystemDevice":
                    case "SystemDirectory":
                    case "SystemDrive":
                    case "TotalVirtualMemorySize":
                    case "TotalVisibleMemorySize":
                    case "Version":
                    case "WindowsDirectory":
                        Console.WriteLine(@"Name: {0}; Value: {1}", pd.Name, pd.Value == null ? string.Empty : pd.Value.ToString().Trim());
                        Handler.LogHandler.Info(string.Format(@"Name: {0}; Value: {1}", pd.Name, pd.Value == null ? string.Empty : pd.Value.ToString().Trim()));
                        Handler.LogHandler.MemoryFatalException(string.Format(@"Name: {0}; Value: {1}", pd.Name, pd.Value == null ? string.Empty : pd.Value.ToString().Trim()));
                        break;
                }                    
            }
            Console.WriteLine(@" --- ");
            Handler.LogHandler.Info(@" --- ");
        }

    }
}

}
www.yisuping.com

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值