获取CPU信息

using  System;
using  System.Configuration;
using  System.Runtime.InteropServices;
using  System.Management;
using  System.Text;

namespace  CPUInformation
{
    [StructLayout(LayoutKind.Sequential)]
    
public struct CpuInfo
    
{
        
public uint dwOemId;
        
public uint dwPageSize;
        
public uint lpMinimumApplicationAddress;
        
public uint lpMaximumApplicationAddress;
        
public uint dwActiveProcessorMask;
        
public uint dwNumberOfProcessors;
        
public uint dwProcessorType;
        
public uint dwAllocationGranularity;
        
public uint dwProcessorLevel;
        
public uint dwProcessorRevision;
    }


    [StructLayout(LayoutKind.Sequential)]
    
public struct MemoryInfo
    
{
        
public uint dwLength;
        
public uint dwMemoryLoad;
        
public uint dwTotalPhys;
        
public uint dwAvailPhys;
        
public uint dwTotalPageFile;
        
public uint dwAvailPageFile;
        
public uint dwTotalVirtual;
        
public uint dwAvailVirtual;
    }


    [StructLayout(LayoutKind.Sequential)]
    
public struct SystemTimeInfo
    
{
        
public ushort wYear;
        
public ushort wMonth;
        
public ushort wDayOfWeek;
        
public ushort wDay;
        
public ushort wHour;
        
public ushort wMinute;
        
public ushort wSecond;
        
public ushort wMilliseconds;
    }


    
public class SystemInfo
    
{
        
private const int CHAR_COUNT = 128;

        
public SystemInfo() { }

        [DllImport(
"kernel32")]
        
private static extern void GetWindowsDirectory(StringBuilder WinDir, int count);

        [DllImport(
"kernel32")]
        
private static extern void GetSystemDirectory(StringBuilder SysDir, int count);

        [DllImport(
"kernel32")]
        
private static extern void GetSystemInfo(ref CpuInfo cpuInfo);

        [DllImport(
"kernel32")]
        
private static extern void GlobalMemoryStatus(ref MemoryInfo memInfo);

        [DllImport(
"kernel32")]
        
private static extern void GetSystemTime(ref SystemTimeInfo sysInfo);

        
public string GetCpuID()
        
{
            ManagementClass mClass 
= new ManagementClass("Win32_Processor");
            ManagementObjectCollection moc 
= mClass.GetInstances();
            
string cpuId = null;

            
foreach (ManagementObject mo in moc)
            
{
                cpuId 
= mo.Properties["ProcessorId"].Value.ToString();
                
break;
            }


            
return cpuId;
        }


        
public string GetMainHardDiskId()
        
{
            ManagementObjectSearcher searcher 
= new ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMedia");
            
string hardDiskID=null;

            
foreach (ManagementObject mo in searcher.Get())
            
{
                hardDiskID 
= mo["SerialNumber"].ToString().Trim();
                
break;
            }


            
return hardDiskID; 
        }


        
public string GetWinDirectory()
        
{
            StringBuilder sBuilder 
= new StringBuilder(CHAR_COUNT);
            GetWindowsDirectory(sBuilder, CHAR_COUNT);
            
return sBuilder.ToString();
        }


        
public string GetSysDirectory()
        
{
            StringBuilder sBuilder 
= new StringBuilder(CHAR_COUNT);
            GetSystemDirectory(sBuilder, CHAR_COUNT);
            
return sBuilder.ToString();
        }


        
public CpuInfo GetCpuInfo()
        
{
            CpuInfo cpuInfo 
= new CpuInfo();
            GetSystemInfo(
ref cpuInfo);
            
return cpuInfo;
        }


        
public MemoryInfo GetMemoryInfo()
        
{
            MemoryInfo memoryInfo 
= new MemoryInfo();
            GlobalMemoryStatus(
ref memoryInfo);
            
return memoryInfo;
        }


        
public SystemTimeInfo GetSystemTimeInfo()
        
{
            SystemTimeInfo systemTimeInfo 
= new SystemTimeInfo();
            GetSystemTime(
ref systemTimeInfo);
            
return systemTimeInfo;
        }


        
public string GetOperationSystemInName()
        
{
            OperatingSystem os 
= System.Environment.OSVersion;
            
string osName = "UNKNOWN";
            
switch (os.Platform)
            
{
                
case PlatformID.Win32Windows:
                    
switch (os.Version.Minor)
                    
{
                        
case 0: osName = "Windows 95"break;
                        
case 10: osName = "Windows 98"break;
                        
case 90: osName = "Windows ME"break;
                    }

                    
break;
                
case PlatformID.Win32NT:
                    
switch (os.Version.Major)
                    
{
                        
case 3: osName = "Windws NT 3.51"break;
                     
case 4: osName = "Windows NT 4"break;
                     
case 5if (os.Version.Minor == 0)
                         
{
                             osName 
= "Windows 2000"
                         }

                         
else if (os.Version.Minor == 1)
                         
{
                             osName 
= "Windows XP";
                         }

                         
else if (os.Version.Minor == 2)
                         
{
                             osName 
= "Windows Server 2003"
                         }

                         
break;
                     
case 6: osName = "Longhorn"break;
                    }

                    
break;
            }

            
return String.Format("{0},{1}", osName, os.Version.ToString());
        }

    }

}

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值