首先在添加引用中选中System.Management
using System.Management;
using System.Management.Instrumentation;
private void GetInfo()
{
string cpuInfo = "";//cpu序列号
ManagementClass cimobject = new ManagementClass("Win32_Processor");
ManagementObjectCollection moc = cimobject.GetInstances();
foreach(ManagementObject mo in moc)
{
cpuInfo = mo.Properties["ProcessorId"].Value.ToString();
Response.Write ("cpu序列号:"+cpuInfo.ToString ());
}
//获取硬盘ID
String HDid;
ManagementClass cimobject1 = new ManagementClass("Win32_DiskDrive");
ManagementObjectCollection moc1 = cimobject1.GetInstances();
foreach(ManagementObject mo in moc1)
{
HDid = (string)mo.Properties["Model"].Value;
Response.Write ("硬盘序列号:"+HDid.ToString ());
}
//获取网卡硬件地址
ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection moc2 = mc.GetInstances();
foreach(ManagementObject mo in moc2)
{
if((bool)mo["IPEnabled"] == true)
Response.Write("MAC address\t{0}"+mo["MacAddress"].ToString());
mo.Dispose();
}
}
public static float GetCPUPersent()
{
float cpuload = 0;
const string categoryname = "processor";
const string countername = "% processor time";
const string instancename = "_total";
PerformanceCounter pc = new PerformanceCounter(categoryname, countername, instancename);
int i = 10;
while (i > 0)
{
Thread.Sleep(1000); // wait for 1 second
cpuload = pc.NextValue();
if (cpuload > 0)
{
break;
}
i--;
}
return cpuload;
}
public static void GetDiskSpace(string path, out long DiskAll, out long DiskActive)
{
DiskAll = 0;
DiskActive = 0;
long a, b, c;
int aaa = GetDiskFreeSpaceEx(path, out a, out b, out c);
DiskAll = (long)(b / 1024 / 1024);
DiskActive = (long)(a / 1024 / 1024);
}
public static void GetMemoryInfo(out uint MemoryAll, out uint MemoryUsed)
{
MemoryAll = 0;
MemoryUsed = 0;
MEMORY_INFO MemInfo = new MEMORY_INFO();
GlobalMemoryStatus(ref MemInfo);
MemoryAll = MemInfo.dwTotalPhys / 1024 / 1024;
MemoryUsed = (MemInfo.dwTotalPhys - MemInfo.dwAvailPhys) / 1024 / 1024;
}
[DllImport("kernel32")]
public static extern void GlobalMemoryStatus(ref MEMORY_INFO meminfo);
//定义内存的信息结构
[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.dll", EntryPoint = "GetDiskFreeSpaceExA")]
public static extern int GetDiskFreeSpaceEx(string lpRootPathName, out long lpFreeBytesAvailable, out long lpTotalNumberOfBytes, out long lpTotalNumberOfFreeBytes);
本文转自94cool博客园博客,原文链接:http://www.cnblogs.com/94cool/archive/2011/06/12/2078858.html,如需转载请自行联系原作者