如果利用C#获取系统有关环境和属性,这个也是在网上问得比较多的问题,不过大部分只有提问没有回答,最近正好想做有关方面的东西,整理了一下,提供给大家,希望能给大家提供参考意见:

首先需要定义几个结构(struct) ,便于DllImport作为返回参数调用。以下是代码:
CpuInfo.cs

用C#获取系统有关环境、属性(转)_物理内存using System;
用C#获取系统有关环境、属性(转)_物理内存
using System.Configuration;
用C#获取系统有关环境、属性(转)_物理内存
using System.Runtime.InteropServices;
用C#获取系统有关环境、属性(转)_物理内存
用C#获取系统有关环境、属性(转)_提高效率_05用C#获取系统有关环境、属性(转)_动态链接_06
/**//**
用C#获取系统有关环境、属性(转)_提高效率_07 * LayoutKind.Automatic:为了提高效率允许运行态对类型成员重新排序
用C#获取系统有关环境、属性(转)_提高效率_07 * 注意:永远不要使用这个选项来调用不受管辖的动态链接库函数。
用C#获取系统有关环境、属性(转)_提高效率_07 * LayoutKind.Explicit:对每个域按照FieldOffset属性对类型成员排序
用C#获取系统有关环境、属性(转)_提高效率_07 * LayoutKind.Sequential:对出现在受管辖类型定义地方的不受管辖内存中的类型成员进行排序。
用C#获取系统有关环境、属性(转)_库函数_11 
*/

用C#获取系统有关环境、属性(转)_物理内存 
用C#获取系统有关环境、属性(转)_提高效率_05用C#获取系统有关环境、属性(转)_动态链接_06
/**//// <summary>
用C#获取系统有关环境、属性(转)_提高效率_07
/// 定义CPU的信息结构
用C#获取系统有关环境、属性(转)_库函数_11
/// </summary>

用C#获取系统有关环境、属性(转)_物理内存[StructLayout(LayoutKind.Sequential)] 
用C#获取系统有关环境、属性(转)_物理内存
public struct CpuInfo
用C#获取系统有关环境、属性(转)_提高效率_05用C#获取系统有关环境、属性(转)_动态链接_06
...{
用C#获取系统有关环境、属性(转)_虚拟内存_21用C#获取系统有关环境、属性(转)_库函数_22    
/**//// <summary>
用C#获取系统有关环境、属性(转)_提高效率_07    
/// OEM ID
用C#获取系统有关环境、属性(转)_虚拟内存_24    
/// </summary>

用C#获取系统有关环境、属性(转)_提高效率_07    public uint dwOemId;
用C#获取系统有关环境、属性(转)_虚拟内存_21用C#获取系统有关环境、属性(转)_库函数_22    
/**//// <summary>
用C#获取系统有关环境、属性(转)_提高效率_07    
/// 页面大小
用C#获取系统有关环境、属性(转)_虚拟内存_24    
/// </summary>

用C#获取系统有关环境、属性(转)_提高效率_07    public uint dwPageSize;
用C#获取系统有关环境、属性(转)_提高效率_07    
public uint lpMinimumApplicationAddress;
用C#获取系统有关环境、属性(转)_提高效率_07    
public uint lpMaximumApplicationAddress;
用C#获取系统有关环境、属性(转)_提高效率_07    
public uint dwActiveProcessorMask;
用C#获取系统有关环境、属性(转)_虚拟内存_21用C#获取系统有关环境、属性(转)_库函数_22    
/**//// <summary>
用C#获取系统有关环境、属性(转)_提高效率_07    
/// CPU个数
用C#获取系统有关环境、属性(转)_虚拟内存_24    
/// </summary>

用C#获取系统有关环境、属性(转)_提高效率_07    public uint dwNumberOfProcessors;
用C#获取系统有关环境、属性(转)_虚拟内存_21用C#获取系统有关环境、属性(转)_库函数_22    
/**//// <summary>
用C#获取系统有关环境、属性(转)_提高效率_07    
/// CPU类型
用C#获取系统有关环境、属性(转)_虚拟内存_24    
/// </summary>

用C#获取系统有关环境、属性(转)_提高效率_07    public uint dwProcessorType;
用C#获取系统有关环境、属性(转)_提高效率_07    
public uint dwAllocationGranularity;
用C#获取系统有关环境、属性(转)_虚拟内存_21用C#获取系统有关环境、属性(转)_库函数_22    
/**//// <summary>
用C#获取系统有关环境、属性(转)_提高效率_07    
/// CPU等级
用C#获取系统有关环境、属性(转)_虚拟内存_24    
/// </summary>

用C#获取系统有关环境、属性(转)_提高效率_07    public uint dwProcessorLevel;
用C#获取系统有关环境、属性(转)_提高效率_07    
public uint dwProcessorRevision; 
用C#获取系统有关环境、属性(转)_库函数_11}

MemoryInfo.cs
用C#获取系统有关环境、属性(转)_物理内存using System;
用C#获取系统有关环境、属性(转)_物理内存
using System.Configuration;
用C#获取系统有关环境、属性(转)_物理内存
using System.Runtime.InteropServices;
用C#获取系统有关环境、属性(转)_物理内存
用C#获取系统有关环境、属性(转)_提高效率_05用C#获取系统有关环境、属性(转)_动态链接_06
/**//**
用C#获取系统有关环境、属性(转)_提高效率_07 * LayoutKind.Automatic:为了提高效率允许运行态对类型成员重新排序
用C#获取系统有关环境、属性(转)_提高效率_07 * 注意:永远不要使用这个选项来调用不受管辖的动态链接库函数。
用C#获取系统有关环境、属性(转)_提高效率_07 * LayoutKind.Explicit:对每个域按照FieldOffset属性对类型成员排序
用C#获取系统有关环境、属性(转)_提高效率_07 * LayoutKind.Sequential:对出现在受管辖类型定义地方的不受管辖内存中的类型成员进行排序。
用C#获取系统有关环境、属性(转)_库函数_11 
*/

用C#获取系统有关环境、属性(转)_提高效率_05用C#获取系统有关环境、属性(转)_动态链接_06
/**//// <summary>
用C#获取系统有关环境、属性(转)_提高效率_07
/// 定义内存的信息结构
用C#获取系统有关环境、属性(转)_库函数_11
/// </summary>

用C#获取系统有关环境、属性(转)_物理内存[StructLayout(LayoutKind.Sequential)]
用C#获取系统有关环境、属性(转)_物理内存
public struct MemoryInfo
用C#获取系统有关环境、属性(转)_提高效率_05用C#获取系统有关环境、属性(转)_动态链接_06
...{
用C#获取系统有关环境、属性(转)_虚拟内存_21用C#获取系统有关环境、属性(转)_库函数_22    
/**//// <summary>
用C#获取系统有关环境、属性(转)_提高效率_07    
/// 
用C#获取系统有关环境、属性(转)_虚拟内存_24    
/// </summary>

用C#获取系统有关环境、属性(转)_提高效率_07    public uint dwLength;
用C#获取系统有关环境、属性(转)_虚拟内存_21用C#获取系统有关环境、属性(转)_库函数_22    
/**//// <summary>
用C#获取系统有关环境、属性(转)_提高效率_07    
/// 已经使用的内存
用C#获取系统有关环境、属性(转)_虚拟内存_24    
/// </summary>

用C#获取系统有关环境、属性(转)_提高效率_07    public uint dwMemoryLoad;
用C#获取系统有关环境、属性(转)_虚拟内存_21用C#获取系统有关环境、属性(转)_库函数_22    
/**//// <summary>
用C#获取系统有关环境、属性(转)_提高效率_07    
/// 总物理内存大小
用C#获取系统有关环境、属性(转)_虚拟内存_24    
/// </summary>

用C#获取系统有关环境、属性(转)_提高效率_07    public uint dwTotalPhys;
用C#获取系统有关环境、属性(转)_虚拟内存_21用C#获取系统有关环境、属性(转)_库函数_22    
/**//// <summary>
用C#获取系统有关环境、属性(转)_提高效率_07    
/// 可用物理内存大小
用C#获取系统有关环境、属性(转)_虚拟内存_24    
/// </summary>

用C#获取系统有关环境、属性(转)_提高效率_07    public uint dwAvailPhys;
用C#获取系统有关环境、属性(转)_虚拟内存_21用C#获取系统有关环境、属性(转)_库函数_22    
/**//// <summary>
用C#获取系统有关环境、属性(转)_提高效率_07    
/// 交换文件总大小
用C#获取系统有关环境、属性(转)_虚拟内存_24    
/// </summary>

用C#获取系统有关环境、属性(转)_提高效率_07    public uint dwTotalPageFile;
用C#获取系统有关环境、属性(转)_虚拟内存_21用C#获取系统有关环境、属性(转)_库函数_22    
/**//// <summary>
用C#获取系统有关环境、属性(转)_提高效率_07    
/// 可用交换文件大小
用C#获取系统有关环境、属性(转)_虚拟内存_24    
/// </summary>

用C#获取系统有关环境、属性(转)_提高效率_07    public uint dwAvailPageFile;
用C#获取系统有关环境、属性(转)_虚拟内存_21用C#获取系统有关环境、属性(转)_库函数_22    
/**//// <summary>
用C#获取系统有关环境、属性(转)_提高效率_07    
/// 总虚拟内存大小
用C#获取系统有关环境、属性(转)_虚拟内存_24    
/// </summary>

用C#获取系统有关环境、属性(转)_提高效率_07    public uint dwTotalVirtual;
用C#获取系统有关环境、属性(转)_虚拟内存_21用C#获取系统有关环境、属性(转)_库函数_22    
/**//// <summary>
用C#获取系统有关环境、属性(转)_提高效率_07    
/// 可用虚拟内存大小
用C#获取系统有关环境、属性(转)_虚拟内存_24    
/// </summary>

用C#获取系统有关环境、属性(转)_提高效率_07    public uint dwAvailVirtual;
用C#获取系统有关环境、属性(转)_库函数_11}

SystemTimeInfo.cs
用C#获取系统有关环境、属性(转)_物理内存using System;
用C#获取系统有关环境、属性(转)_物理内存
using System.Configuration;
用C#获取系统有关环境、属性(转)_物理内存
using System.Runtime.InteropServices;
用C#获取系统有关环境、属性(转)_物理内存
用C#获取系统有关环境、属性(转)_提高效率_05用C#获取系统有关环境、属性(转)_动态链接_06
/**//**
用C#获取系统有关环境、属性(转)_提高效率_07 * LayoutKind.Automatic:为了提高效率允许运行态对类型成员重新排序
用C#获取系统有关环境、属性(转)_提高效率_07 * 注意:永远不要使用这个选项来调用不受管辖的动态链接库函数。
用C#获取系统有关环境、属性(转)_提高效率_07 * LayoutKind.Explicit:对每个域按照FieldOffset属性对类型成员排序
用C#获取系统有关环境、属性(转)_提高效率_07 * LayoutKind.Sequential:对出现在受管辖类型定义地方的不受管辖内存中的类型成员进行排序。
用C#获取系统有关环境、属性(转)_库函数_11 
*/

用C#获取系统有关环境、属性(转)_提高效率_05用C#获取系统有关环境、属性(转)_动态链接_06
/**//// <summary>
用C#获取系统有关环境、属性(转)_提高效率_07
/// 定义系统时间的信息结构
用C#获取系统有关环境、属性(转)_库函数_11
/// </summary>

用C#获取系统有关环境、属性(转)_物理内存[StructLayout(LayoutKind.Sequential)] 
用C#获取系统有关环境、属性(转)_物理内存
public struct SystemTimeInfo
用C#获取系统有关环境、属性(转)_提高效率_05用C#获取系统有关环境、属性(转)_动态链接_06
...{
用C#获取系统有关环境、属性(转)_虚拟内存_21用C#获取系统有关环境、属性(转)_库函数_22    
/**//// <summary>
用C#获取系统有关环境、属性(转)_提高效率_07    
/// 年
用C#获取系统有关环境、属性(转)_虚拟内存_24    
/// </summary>

用C#获取系统有关环境、属性(转)_提高效率_07    public ushort wYear;
用C#获取系统有关环境、属性(转)_虚拟内存_21用C#获取系统有关环境、属性(转)_库函数_22    
/**//// <summary>
用C#获取系统有关环境、属性(转)_提高效率_07    
/// 月
用C#获取系统有关环境、属性(转)_虚拟内存_24    
/// </summary>

用C#获取系统有关环境、属性(转)_提高效率_07    public ushort wMonth;
用C#获取系统有关环境、属性(转)_虚拟内存_21用C#获取系统有关环境、属性(转)_库函数_22    
/**//// <summary>
用C#获取系统有关环境、属性(转)_提高效率_07    
/// 星期
用C#获取系统有关环境、属性(转)_虚拟内存_24    
/// </summary>

用C#获取系统有关环境、属性(转)_提高效率_07    public ushort wDayOfWeek;
用C#获取系统有关环境、属性(转)_虚拟内存_21用C#获取系统有关环境、属性(转)_库函数_22    
/**//// <summary>
用C#获取系统有关环境、属性(转)_提高效率_07    
/// 天
用C#获取系统有关环境、属性(转)_虚拟内存_24    
/// </summary>

用C#获取系统有关环境、属性(转)_提高效率_07    public ushort wDay;
用C#获取系统有关环境、属性(转)_虚拟内存_21用C#获取系统有关环境、属性(转)_库函数_22    
/**//// <summary>
用C#获取系统有关环境、属性(转)_提高效率_07    
/// 小时
用C#获取系统有关环境、属性(转)_虚拟内存_24    
/// </summary>

用C#获取系统有关环境、属性(转)_提高效率_07    public ushort wHour;
用C#获取系统有关环境、属性(转)_虚拟内存_21用C#获取系统有关环境、属性(转)_库函数_22    
/**//// <summary>
用C#获取系统有关环境、属性(转)_提高效率_07    
/// 分钟
用C#获取系统有关环境、属性(转)_虚拟内存_24    
/// </summary>

用C#获取系统有关环境、属性(转)_提高效率_07    public ushort wMinute;
用C#获取系统有关环境、属性(转)_虚拟内存_21用C#获取系统有关环境、属性(转)_库函数_22    
/**//// <summary>
用C#获取系统有关环境、属性(转)_提高效率_07    
/// 秒
用C#获取系统有关环境、属性(转)_虚拟内存_24    
/// </summary>

用C#获取系统有关环境、属性(转)_提高效率_07    public ushort wSecond;
用C#获取系统有关环境、属性(转)_虚拟内存_21用C#获取系统有关环境、属性(转)_库函数_22    
/**//// <summary>
用C#获取系统有关环境、属性(转)_提高效率_07    
/// 毫秒
用C#获取系统有关环境、属性(转)_虚拟内存_24    
/// </summary>

用C#获取系统有关环境、属性(转)_提高效率_07    public ushort wMilliseconds;
用C#获取系统有关环境、属性(转)_库函数_11}

另外还定义了一个调用类SystemInfo.cs,代码如下:
用C#获取系统有关环境、属性(转)_物理内存using System;
用C#获取系统有关环境、属性(转)_物理内存
using System.Configuration;
用C#获取系统有关环境、属性(转)_物理内存
using System.Runtime.InteropServices;
用C#获取系统有关环境、属性(转)_物理内存
using System.Management;
用C#获取系统有关环境、属性(转)_物理内存
using System.Text;
用C#获取系统有关环境、属性(转)_物理内存
用C#获取系统有关环境、属性(转)_提高效率_05用C#获取系统有关环境、属性(转)_动态链接_06
/**//// <summary>
用C#获取系统有关环境、属性(转)_提高效率_07
/// SystemInfo 的摘要说明
用C#获取系统有关环境、属性(转)_库函数_11
/// </summary>

用C#获取系统有关环境、属性(转)_物理内存public class SystemInfo
用C#获取系统有关环境、属性(转)_提高效率_05用C#获取系统有关环境、属性(转)_动态链接_06
...{
用C#获取系统有关环境、属性(转)_提高效率_07    
private const int CHAR_COUNT = 128;
用C#获取系统有关环境、属性(转)_提高效率_07    
public SystemInfo()
用C#获取系统有关环境、属性(转)_虚拟内存_21用C#获取系统有关环境、属性(转)_库函数_22    
...{
用C#获取系统有关环境、属性(转)_提高效率_07        
用C#获取系统有关环境、属性(转)_虚拟内存_24    }

用C#获取系统有关环境、属性(转)_提高效率_07    [DllImport(
"kernel32")]
用C#获取系统有关环境、属性(转)_提高效率_07    
private static extern void GetWindowsDirectory(StringBuilder WinDir, int count);
用C#获取系统有关环境、属性(转)_提高效率_07
用C#获取系统有关环境、属性(转)_提高效率_07    [DllImport(
"kernel32")]
用C#获取系统有关环境、属性(转)_提高效率_07    
private static extern void GetSystemDirectory(StringBuilder SysDir, int count);
用C#获取系统有关环境、属性(转)_提高效率_07
用C#获取系统有关环境、属性(转)_提高效率_07    [DllImport(
"kernel32")]
用C#获取系统有关环境、属性(转)_提高效率_07    
private static extern void GetSystemInfo(ref CpuInfo cpuInfo);
用C#获取系统有关环境、属性(转)_提高效率_07
用C#获取系统有关环境、属性(转)_提高效率_07    [DllImport(
"kernel32")]
用C#获取系统有关环境、属性(转)_提高效率_07    
private static extern void GlobalMemoryStatus(ref MemoryInfo memInfo);
用C#获取系统有关环境、属性(转)_提高效率_07
用C#获取系统有关环境、属性(转)_提高效率_07    [DllImport(
"kernel32")]
用C#获取系统有关环境、属性(转)_提高效率_07    
private static extern void GetSystemTime(ref SystemTimeInfo sysInfo);
用C#获取系统有关环境、属性(转)_提高效率_07
用C#获取系统有关环境、属性(转)_虚拟内存_21用C#获取系统有关环境、属性(转)_库函数_22    
/**//// <summary>
用C#获取系统有关环境、属性(转)_提高效率_07    
/// 查询CPU编号
用C#获取系统有关环境、属性(转)_提高效率_07    
/// </summary>
用C#获取系统有关环境、属性(转)_虚拟内存_24    
/// <returns></returns>

用C#获取系统有关环境、属性(转)_提高效率_07    public string GetCpuId()
用C#获取系统有关环境、属性(转)_虚拟内存_21用C#获取系统有关环境、属性(转)_库函数_22    
...{
用C#获取系统有关环境、属性(转)_提高效率_07        ManagementClass mClass 
= new ManagementClass("Win32_Processor");
用C#获取系统有关环境、属性(转)_提高效率_07        ManagementObjectCollection moc 
= mClass.GetInstances();
用C#获取系统有关环境、属性(转)_提高效率_07        
string cpuId=null;
用C#获取系统有关环境、属性(转)_提高效率_07        
foreach (ManagementObject mo in moc)
用C#获取系统有关环境、属性(转)_虚拟内存_21用C#获取系统有关环境、属性(转)_库函数_22        
...{
用C#获取系统有关环境、属性(转)_提高效率_07            cpuId 
= mo.Properties["ProcessorId"].Value.ToString();
用C#获取系统有关环境、属性(转)_提高效率_07            
break;
用C#获取系统有关环境、属性(转)_虚拟内存_24        }

用C#获取系统有关环境、属性(转)_提高效率_07        
return cpuId;
用C#获取系统有关环境、属性(转)_虚拟内存_24    }

用C#获取系统有关环境、属性(转)_提高效率_07
用C#获取系统有关环境、属性(转)_虚拟内存_21用C#获取系统有关环境、属性(转)_库函数_22    
/**//// <summary>
用C#获取系统有关环境、属性(转)_提高效率_07    
/// 查询硬盘编号
用C#获取系统有关环境、属性(转)_提高效率_07    
/// </summary>
用C#获取系统有关环境、属性(转)_虚拟内存_24    
/// <returns></returns>

用C#获取系统有关环境、属性(转)_提高效率_07    public string GetMainHardDiskId()
用C#获取系统有关环境、属性(转)_虚拟内存_21用C#获取系统有关环境、属性(转)_库函数_22    
...{
用C#获取系统有关环境、属性(转)_提高效率_07        ManagementObjectSearcher searcher 
= new ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMedia");
用C#获取系统有关环境、属性(转)_提高效率_07        String hardDiskID
=null;
用C#获取系统有关环境、属性(转)_提高效率_07        
foreach (ManagementObject mo in searcher.Get())
用C#获取系统有关环境、属性(转)_虚拟内存_21用C#获取系统有关环境、属性(转)_库函数_22        
...{
用C#获取系统有关环境、属性(转)_提高效率_07            hardDiskID 
= mo["SerialNumber"].ToString().Trim();
用C#获取系统有关环境、属性(转)_提高效率_07            
break;
用C#获取系统有关环境、属性(转)_虚拟内存_24        }

用C#获取系统有关环境、属性(转)_提高效率_07        
return hardDiskID; 
用C#获取系统有关环境、属性(转)_虚拟内存_24    }

用C#获取系统有关环境、属性(转)_提高效率_07
用C#获取系统有关环境、属性(转)_虚拟内存_21用C#获取系统有关环境、属性(转)_库函数_22    
/**//// <summary>
用C#获取系统有关环境、属性(转)_提高效率_07    
/// 获取Windows目录
用C#获取系统有关环境、属性(转)_提高效率_07    
/// </summary>
用C#获取系统有关环境、属性(转)_虚拟内存_24    
/// <returns></returns>

用C#获取系统有关环境、属性(转)_提高效率_07    public string GetWinDirectory()
用C#获取系统有关环境、属性(转)_虚拟内存_21用C#获取系统有关环境、属性(转)_库函数_22    
...{
用C#获取系统有关环境、属性(转)_提高效率_07        StringBuilder sBuilder 
= new StringBuilder(CHAR_COUNT);
用C#获取系统有关环境、属性(转)_提高效率_07        GetWindowsDirectory(sBuilder, CHAR_COUNT);
用C#获取系统有关环境、属性(转)_提高效率_07        
return sBuilder.ToString();
用C#获取系统有关环境、属性(转)_虚拟内存_24    }

用C#获取系统有关环境、属性(转)_提高效率_07
用C#获取系统有关环境、属性(转)_虚拟内存_21用C#获取系统有关环境、属性(转)_库函数_22    
/**//// <summary>
用C#获取系统有关环境、属性(转)_提高效率_07    
/// 获取系统目录
用C#获取系统有关环境、属性(转)_提高效率_07    
/// </summary>
用C#获取系统有关环境、属性(转)_虚拟内存_24    
/// <returns></returns>

用C#获取系统有关环境、属性(转)_提高效率_07    public string GetSysDirectory()
用C#获取系统有关环境、属性(转)_虚拟内存_21用C#获取系统有关环境、属性(转)_库函数_22    
...{
用C#获取系统有关环境、属性(转)_提高效率_07        StringBuilder sBuilder 
= new StringBuilder(CHAR_COUNT);
用C#获取系统有关环境、属性(转)_提高效率_07        GetSystemDirectory(sBuilder, CHAR_COUNT);
用C#获取系统有关环境、属性(转)_提高效率_07        
return sBuilder.ToString();
用C#获取系统有关环境、属性(转)_虚拟内存_24    }

用C#获取系统有关环境、属性(转)_提高效率_07
用C#获取系统有关环境、属性(转)_虚拟内存_21用C#获取系统有关环境、属性(转)_库函数_22   
/**//// <summary>
用C#获取系统有关环境、属性(转)_提高效率_07   
/// 获取CPU信息
用C#获取系统有关环境、属性(转)_提高效率_07   
/// </summary>
用C#获取系统有关环境、属性(转)_虚拟内存_24   
/// <returns></returns>

用C#获取系统有关环境、属性(转)_提高效率_07    public CpuInfo GetCpuInfo()
用C#获取系统有关环境、属性(转)_虚拟内存_21用C#获取系统有关环境、属性(转)_库函数_22    
...{
用C#获取系统有关环境、属性(转)_提高效率_07        CpuInfo cpuInfo 
= new CpuInfo();
用C#获取系统有关环境、属性(转)_提高效率_07        GetSystemInfo(
ref cpuInfo);
用C#获取系统有关环境、属性(转)_提高效率_07        
return cpuInfo;
用C#获取系统有关环境、属性(转)_虚拟内存_24    }

用C#获取系统有关环境、属性(转)_提高效率_07
用C#获取系统有关环境、属性(转)_虚拟内存_21用C#获取系统有关环境、属性(转)_库函数_22    
/**//// <summary>
用C#获取系统有关环境、属性(转)_提高效率_07    
/// 获取系统内存信息
用C#获取系统有关环境、属性(转)_提高效率_07    
/// </summary>
用C#获取系统有关环境、属性(转)_虚拟内存_24    
/// <returns></returns>

用C#获取系统有关环境、属性(转)_提高效率_07    public MemoryInfo GetMemoryInfo()
用C#获取系统有关环境、属性(转)_虚拟内存_21用C#获取系统有关环境、属性(转)_库函数_22    
...{
用C#获取系统有关环境、属性(转)_提高效率_07        MemoryInfo memoryInfo 
= new MemoryInfo();
用C#获取系统有关环境、属性(转)_提高效率_07        GlobalMemoryStatus(
ref memoryInfo);
用C#获取系统有关环境、属性(转)_提高效率_07        
return memoryInfo;
用C#获取系统有关环境、属性(转)_虚拟内存_24    }

用C#获取系统有关环境、属性(转)_提高效率_07
用C#获取系统有关环境、属性(转)_虚拟内存_21用C#获取系统有关环境、属性(转)_库函数_22    
/**//// <summary>
用C#获取系统有关环境、属性(转)_提高效率_07    
/// 获取系统时间信息
用C#获取系统有关环境、属性(转)_提高效率_07    
/// </summary>
用C#获取系统有关环境、属性(转)_虚拟内存_24    
/// <returns></returns>

用C#获取系统有关环境、属性(转)_提高效率_07    public SystemTimeInfo GetSystemTimeInfo()
用C#获取系统有关环境、属性(转)_虚拟内存_21用C#获取系统有关环境、属性(转)_库函数_22    
...{
用C#获取系统有关环境、属性(转)_提高效率_07        SystemTimeInfo systemTimeInfo 
= new SystemTimeInfo();
用C#获取系统有关环境、属性(转)_提高效率_07        GetSystemTime(
ref systemTimeInfo);
用C#获取系统有关环境、属性(转)_提高效率_07        
return systemTimeInfo;
用C#获取系统有关环境、属性(转)_虚拟内存_24    }

用C#获取系统有关环境、属性(转)_提高效率_07
用C#获取系统有关环境、属性(转)_虚拟内存_21用C#获取系统有关环境、属性(转)_库函数_22    
/**//// <summary>
用C#获取系统有关环境、属性(转)_提高效率_07    
/// 获取系统名称
用C#获取系统有关环境、属性(转)_提高效率_07    
/// </summary>
用C#获取系统有关环境、属性(转)_虚拟内存_24    
/// <returns></returns>

用C#获取系统有关环境、属性(转)_提高效率_07    public string GetOperationSystemInName()
用C#获取系统有关环境、属性(转)_虚拟内存_21用C#获取系统有关环境、属性(转)_库函数_22    
...{
用C#获取系统有关环境、属性(转)_提高效率_07        OperatingSystem os 
= System.Environment.OSVersion;
用C#获取系统有关环境、属性(转)_提高效率_07        
string osName = "UNKNOWN";
用C#获取系统有关环境、属性(转)_提高效率_07        
switch (os.Platform)
用C#获取系统有关环境、属性(转)_虚拟内存_21用C#获取系统有关环境、属性(转)_库函数_22        
...{
用C#获取系统有关环境、属性(转)_提高效率_07            
case PlatformID.Win32Windows:
用C#获取系统有关环境、属性(转)_提高效率_07                
switch (os.Version.Minor)
用C#获取系统有关环境、属性(转)_虚拟内存_21用C#获取系统有关环境、属性(转)_库函数_22                
...{
用C#获取系统有关环境、属性(转)_提高效率_07                    
case 0: osName = "Windows 95"break;
用C#获取系统有关环境、属性(转)_提高效率_07                    
case 10: osName = "Windows 98"break;
用C#获取系统有关环境、属性(转)_提高效率_07                    
case 90: osName = "Windows ME"break;
用C#获取系统有关环境、属性(转)_虚拟内存_24                }

用C#获取系统有关环境、属性(转)_提高效率_07                
break;
用C#获取系统有关环境、属性(转)_提高效率_07            
case PlatformID.Win32NT:
用C#获取系统有关环境、属性(转)_提高效率_07                
switch (os.Version.Major)
用C#获取系统有关环境、属性(转)_虚拟内存_21用C#获取系统有关环境、属性(转)_库函数_22                
...{
用C#获取系统有关环境、属性(转)_提高效率_07                    
case 3: osName = "Windws NT 3.51"break;
用C#获取系统有关环境、属性(转)_提高效率_07                    
case 4: osName = "Windows NT 4"break;
用C#获取系统有关环境、属性(转)_提高效率_07                    
case 5if (os.Version.Minor == 0)
用C#获取系统有关环境、属性(转)_虚拟内存_21用C#获取系统有关环境、属性(转)_库函数_22                        
...{
用C#获取系统有关环境、属性(转)_提高效率_07                            osName 
= "Windows 2000"
用C#获取系统有关环境、属性(转)_虚拟内存_24                        }

用C#获取系统有关环境、属性(转)_提高效率_07                        
else if (os.Version.Minor == 1)
用C#获取系统有关环境、属性(转)_虚拟内存_21用C#获取系统有关环境、属性(转)_库函数_22                        
...{
用C#获取系统有关环境、属性(转)_提高效率_07                            osName 
= "Windows XP"
用C#获取系统有关环境、属性(转)_虚拟内存_24                        }

用C#获取系统有关环境、属性(转)_提高效率_07                        
else if (os.Version.Minor == 2)
用C#获取系统有关环境、属性(转)_虚拟内存_21用C#获取系统有关环境、属性(转)_库函数_22                        
...{
用C#获取系统有关环境、属性(转)_提高效率_07                            osName 
= "Windows Server 2003"
用C#获取系统有关环境、属性(转)_虚拟内存_24                        }

用C#获取系统有关环境、属性(转)_提高效率_07                        
break;
用C#获取系统有关环境、属性(转)_提高效率_07                    
case 6: osName = "Longhorn"break;
用C#获取系统有关环境、属性(转)_虚拟内存_24                }

用C#获取系统有关环境、属性(转)_提高效率_07                
break;
用C#获取系统有关环境、属性(转)_虚拟内存_24        }

用C#获取系统有关环境、属性(转)_提高效率_07        
return String.Format("{0},{1}", osName, os.Version.ToString());
用C#获取系统有关环境、属性(转)_虚拟内存_24    }

用C#获取系统有关环境、属性(转)_库函数_11}

以下是调用实例,为了简单,我在一个aspx页面中输出,不过这个程序可以在WinForm中调用:
用C#获取系统有关环境、属性(转)_物理内存using System;
用C#获取系统有关环境、属性(转)_物理内存
using System.Data;
用C#获取系统有关环境、属性(转)_物理内存
using System.Configuration;
用C#获取系统有关环境、属性(转)_物理内存
using System.Collections;
用C#获取系统有关环境、属性(转)_物理内存
using System.Collections.Specialized;
用C#获取系统有关环境、属性(转)_物理内存
using System.Web;
用C#获取系统有关环境、属性(转)_物理内存
using System.Web.Security;
用C#获取系统有关环境、属性(转)_物理内存
using System.Web.UI;
用C#获取系统有关环境、属性(转)_物理内存
using System.Web.UI.WebControls;
用C#获取系统有关环境、属性(转)_物理内存
using System.Web.UI.WebControls.WebParts;
用C#获取系统有关环境、属性(转)_物理内存
using System.Web.UI.HtmlControls;
用C#获取系统有关环境、属性(转)_物理内存
using System.Runtime.InteropServices;
用C#获取系统有关环境、属性(转)_物理内存
用C#获取系统有关环境、属性(转)_物理内存
public partial class Index : System.Web.UI.Page
用C#获取系统有关环境、属性(转)_提高效率_05用C#获取系统有关环境、属性(转)_动态链接_06
...{
用C#获取系统有关环境、属性(转)_提高效率_07    
protected void Page_Load(object sender, EventArgs e)
用C#获取系统有关环境、属性(转)_虚拟内存_21用C#获取系统有关环境、属性(转)_库函数_22    
...{
用C#获取系统有关环境、属性(转)_提高效率_07        
if (!Page.IsPostBack)
用C#获取系统有关环境、属性(转)_虚拟内存_21用C#获取系统有关环境、属性(转)_库函数_22        
...{
用C#获取系统有关环境、属性(转)_提高效率_07            SystemInfo systemInfo 
= new SystemInfo();
用C#获取系统有关环境、属性(转)_提高效率_07             Response.Write(
"操作系统:" + systemInfo.GetOperationSystemInName() + "<br>");
用C#获取系统有关环境、属性(转)_提高效率_07            Response.Write(
"CPU编号:"+systemInfo.GetCpuId() + "<br>");
用C#获取系统有关环境、属性(转)_提高效率_07            Response.Write(
"硬盘编号:"+systemInfo.GetMainHardDiskId() + "<br>");
用C#获取系统有关环境、属性(转)_提高效率_07            Response.Write(
"Windows目录所在位置:" + systemInfo.GetSysDirectory() + "<br>");
用C#获取系统有关环境、属性(转)_提高效率_07            Response.Write(
"系统目录所在位置:" + systemInfo.GetWinDirectory() + "<br>");
用C#获取系统有关环境、属性(转)_提高效率_07            MemoryInfo memoryInfo 
= systemInfo.GetMemoryInfo();
用C#获取系统有关环境、属性(转)_提高效率_07            CpuInfo cpuInfo 
= systemInfo.GetCpuInfo();
用C#获取系统有关环境、属性(转)_提高效率_07            Response.Write(
"dwActiveProcessorMask" + cpuInfo.dwActiveProcessorMask + "<br>");
用C#获取系统有关环境、属性(转)_提高效率_07            Response.Write(
"dwAllocationGranularity" + cpuInfo.dwAllocationGranularity + "<br>");
用C#获取系统有关环境、属性(转)_提高效率_07            Response.Write(
"CPU个数:" + cpuInfo.dwNumberOfProcessors + "<br>");
用C#获取系统有关环境、属性(转)_提高效率_07            Response.Write(
"OEM ID:" + cpuInfo.dwOemId + "<br>");
用C#获取系统有关环境、属性(转)_提高效率_07            Response.Write(
"页面大小" + cpuInfo.dwPageSize + "<br>");
用C#获取系统有关环境、属性(转)_提高效率_07            Response.Write(
"CPU等级" + cpuInfo.dwProcessorLevel + "<br>");
用C#获取系统有关环境、属性(转)_提高效率_07            Response.Write(
"dwProcessorRevision" + cpuInfo.dwProcessorRevision + "<br>");
用C#获取系统有关环境、属性(转)_提高效率_07            Response.Write(
"CPU类型" + cpuInfo.dwProcessorType + "<br>");
用C#获取系统有关环境、属性(转)_提高效率_07            Response.Write(
"lpMaximumApplicationAddress" + cpuInfo.lpMaximumApplicationAddress + "<br>");
用C#获取系统有关环境、属性(转)_提高效率_07            Response.Write(
"lpMinimumApplicationAddress" + cpuInfo.lpMinimumApplicationAddress + "<br>");
用C#获取系统有关环境、属性(转)_提高效率_07            Response.Write(
"CPU类型:" + cpuInfo.dwProcessorType + "<br>");
用C#获取系统有关环境、属性(转)_提高效率_07            Response.Write(
"可用交换文件大小:" + memoryInfo.dwAvailPageFile + "<br>");
用C#获取系统有关环境、属性(转)_提高效率_07            Response.Write(
"可用物理内存大小:" + memoryInfo.dwAvailPhys + "<br>");
用C#获取系统有关环境、属性(转)_提高效率_07            Response.Write(
"可用虚拟内存大小" + memoryInfo.dwAvailVirtual + "<br>");
用C#获取系统有关环境、属性(转)_提高效率_07            Response.Write(
"操作系统位数:" + memoryInfo.dwLength + "<br>");
用C#获取系统有关环境、属性(转)_提高效率_07            Response.Write(
"已经使用内存大小:" + memoryInfo.dwMemoryLoad + "<br>");
用C#获取系统有关环境、属性(转)_提高效率_07            Response.Write(
"交换文件总大小:" + memoryInfo.dwTotalPageFile + "<br>");
用C#获取系统有关环境、属性(转)_提高效率_07            Response.Write(
"总物理内存大小:" + memoryInfo.dwTotalPhys + "<br>");
用C#获取系统有关环境、属性(转)_提高效率_07            Response.Write(
"总虚拟内存大小:" + memoryInfo.dwTotalVirtual + "<br>");
用C#获取系统有关环境、属性(转)_虚拟内存_24        }

用C#获取系统有关环境、属性(转)_虚拟内存_24    }

用C#获取系统有关环境、属性(转)_库函数_11}

用C#获取系统有关环境、属性(转)_物理内存
说明:前台aspx页面没有任何控件。