c#获取系统内存等信息

//cpu频率

using Microsoft.Win32;

private int GetCPUFrequency()

{

RegistryKey rk = Registry.LocalMachine.OpenSubKey(@"HARDWARE\DESCRIPTION\System\CentralProcessor\0");

object obj = rk.GetValue("~MHz");

int CPUFrequency = (int)obj;

return CPUFrequency;

}

//////////////////////////////////

//磁盘空间 Management

using System.Management;

private long GetFreeDiskSpace()

{

ManagementObject disk = new ManagementObject(

"win32_logicaldisk.deviced:\"");

disk.Get();

string totalByte = disk["FreeSpace"].ToString();

long freeDiskSpaceMb = Convert.ToInt64(totalbyte)/1024/1024;

return freeDiskSpaceMb;

}

/////////////////////

//内存信息

using System;

using System.Text;

using System.Runtime.InteropServices;

namespace ConsoleApplication1

{

/**//// <summary>

/// Summary description for Class1.

/// </summary>

class Class1

{

[StructLayout(LayoutKind.Sequential)]

public struct MEMORY_INFO

{

public uint dwLength;

public uint dwMemoryLoad;

public uint dwTotalPhys;

public uint dwAvailPhys;

public uint dwTotalPageFile;

public uint dwAvailPageFile;

public uint dwTotalVirtual;

public uint dwAvailVirtual;

}

[DllImport("kernel32")]

public static extern void GlobalMemoryStatus(ref MEMORY_INFO meminfo);

public static int Main(string[] args)

{

Class1 class1 = new Class1();

class1.GetMemoryStatus();

return 0;

}

private void GetMemoryStatus()

{

MEMORY_INFO MemInfo;

MemInfo = new MEMORY_INFO();

GlobalMemoryStatus(ref MemInfo);

long totalMb = Convert.ToInt64( MemInfo.dwTotalPhys.ToString())/1024/1024;

long avaliableMb = Convert.ToInt64( MemInfo.dwAvailPhys.ToString())/1024/1024;

Console.WriteLine( "物理内存共有" + totalMb + " MB");

Console.WriteLine( "可使用的物理内存有" + avaliableMb +" MB");

}

}

//////////////////////////////

//cpu名字

using Microsoft.Win32;

private string GetCPUName()

{

RegistryKey rk = Registry.LocalMachine.OpenSubKey(@"HARDWARE\DESCRIPTION\System\CentralProcessor\0");

object obj = rk.GetValue("ProcessorNameString");

string CPUName = (string)obj;

return CPUName.TrimStart();

}

///////////////////////

//OS版本

using System;

namespace determineOS_CS

{

class Class1

{

static void Main(string[] args)

{

// Get OperatingSystem information from the system namespace.

System.OperatingSystem osInfo =System.Environment.OSVersion;

// Determine the platform.

switch(osInfo.Platform)

{

// Platform is Windows 95, Windows 98,

// Windows 98 Second Edition, or Windows Me.

case System.PlatformID.Win32Windows:

switch (osInfo.Version.Minor)

{

case 0:

Console.WriteLine ("Windows 95");

break;

case 10:

if(osInfo.Version.Revision.ToString()=="2222A")

Console.WriteLine("Windows 98 Second Edition");

else

Console.WriteLine("Windows 98");

break;

case 90:

Console.WriteLine("Windows Me");

break;

}

break;

// Platform is Windows NT 3.51, Windows NT 4.0, Windows 2000,

// or Windows XP.

case System.PlatformID.Win32NT:

switch(osInfo.Version.Major)

{

case 3:

Console.WriteLine("Windows NT 3.51");

break;

case 4:

Console.WriteLine("Windows NT 4.0");

break;

case 5:

if (osInfo.Version.Minor==0)

Console.WriteLine("Windows 2000");

else

Console.WriteLine("Windows XP");

break;

}break;

}

Console.ReadLine ();

}

}

}