配色: 字号:
获取磁盘硬盘CPU系统网卡声卡等完整信息
2012-10-27 | 阅:  转:  |  分享 
  








usingSystem;

usingSystem.Collections.Generic;

usingSystem.Web;

usingSystem.Management;

usingSystem.Net.NetworkInformation;

usingSystem.Net;

usingSystem.Net.Sockets;

usingMicrosoft.Win32;

usingSystem.Collections;

usingSystem.Runtime.InteropServices;



namespaceEg1

{

classProgram

{

staticvoidMain(string[]args)

{



getConditionByWmimessage=newgetConditionByWmi();

Console.WriteLine("硬盘信息:\n"+message.getHardDiskInfo());

Console.WriteLine("磁盘类型:\n"+message.getDiskType("3"));

Console.WriteLine("CPU信息:\n"+message.getCpuInfo());

Console.WriteLine("系统信息:\n"+message.getOSinfo());

Console.WriteLine("网卡信息:\n"+message.getNetWorkAdapter());

Console.WriteLine("声卡信息:\n"+message.getSoundDevice());

Console.WriteLine("显卡信息:\n"+message.getVideoCardInfo());

Console.WriteLine("内存信息:\n"+message.getMemoryInfo());

Console.WriteLine("主板信息:\n"+message.getBaseBoardInfo());

Console.WriteLine("BIOS信息:\n"+message.getBiosInfo());

Console.WriteLine("显示器信息:\n"+message.getMoniterInfo());

}

}

classgetConditionByWmi

{

#region硬盘、磁盘、CPU、系统

///

///获取硬盘信息

///


///

publicstringgetHardDiskInfo()

{

stringhardDiskInfo="";

ManagementClasshardDisk=newManagementClass("Win32_LogicalDisk");

ManagementObjectCollectionmc=hardDisk.GetInstances();

foreach(ManagementObjectmoinmc)

{

try

{

if(mo["FreeSpace"]!=null)

{

hardDiskInfo=hardDiskInfo+getDiskType(mo["DriveType"].ToString())+":"+mo["Name"].ToString()+",总空间大小:"+(double.Parse(mo["Size"].ToString())/1024/1024/1024).ToString("0.00")+"G,剩余空间大小:"+(double.Parse(mo["FreeSpace"].ToString())/1024/1024/1024).ToString("0.00")+"G\n";

}

}

catch

{

continue;

}

}

mc=null;

hardDisk=null;

returnhardDiskInfo;

}



///

///获取磁盘类型

///


///数字类型参数

///字符串类型

publicstringgetDiskType(stringintType)

{

stringstrType="";

switch(intType)

{

case"2":

strType="可移动磁盘";

break;

case"3":

strType="本地磁盘";

break;

case"4":

strType="网络驱动器";

break;

case"5":

strType="DW驱动盘";

break;

case"6":

strType="RAM盘";

break;

default:

strType="";

break;

}

returnstrType;

}



///

///获取CPU信息

///


///

publicstringgetCpuInfo()

{

stringCpuInfo="";

ManagementClassmc=newManagementClass("Win32_Processor");

ManagementObjectCollectionmoc=mc.GetInstances();

//对于多CPU也可使用

foreach(ManagementObjectmoinmoc)

{

if(mo.Properties["ProcessorId"]!=null)

{

CpuInfo=CpuInfo+"Cpu序列号:"+mo.Properties["ProcessorId"].Value.ToString()+"\n";

}

if(mo["LoadPercentage"]!=null)

{

CpuInfo=CpuInfo+"Cpu使用率:"+mo["LoadPercentage"].ToString()+"%\n";

}

if(mo["CurrentClockSpeed"]!=null)

{

CpuInfo=CpuInfo+"Cpu主频:"+((double.Parse(mo["CurrentClockSpeed"].ToString()))/1024).ToString("0.00")+"GHz\n";

}

if(mo["Name"]!=null)

{

CpuInfo=CpuInfo+"处理器名称:"+mo["Name"].ToString()+"\n";

}

if(mo["Stepping"]!=null)

{

CpuInfo=CpuInfo+"处理器步进:"+mo["Stepping"].ToString()+"\n";

}

if(mo["Version"]!=null)

{

CpuInfo=CpuInfo+"处理器版本:"+mo["Version"].ToString()+"\n";

}

if(mo["Manufacturer"]!=null)

{

CpuInfo=CpuInfo+"制造商:"+mo["Manufacturer"].ToString()+"\n";

}

if(mo["ExtClock"]!=null)

{

CpuInfo=CpuInfo+"外部时钟频率:"+mo["ExtClock"].ToString()+"MHz\n";

}

}



Doublecputem=0;

System.Management.ManagementObjectSearchermos=newSystem.Management.ManagementObjectSearcher(@"root\WMI","SelectFromMSAcpi_ThermalZoneTemperature");

try

{

foreach(System.Management.ManagementObjectmoinmos.Get())

{



cputem=Convert.ToDouble(Convert.ToDouble(mo.GetPropertyValue("CurrentTemperature").ToString())-2732)/10;

CpuInfo=CpuInfo+"Cpu温度:"+cputem.ToString()+"\n";

}

}

catch

{

CpuInfo=CpuInfo+"系统不支持CPU温度检测!"+"\n";

}

returnCpuInfo;

}



///

///获取系统信息

///


///

publicstringgetOSinfo()

{

stringOSinfo="";

ManagementClassMCosInfo=newManagementClass("Win32_OperatingSystem");

ManagementObjectCollectionmoc=MCosInfo.GetInstances();

foreach(ManagementObjectmoinmoc)

{

//OSinfo=OSinfo+"OS名称:"+mo["Name"].ToString()+"\n";

if(mo["Caption"]!=null)

{

OSinfo=OSinfo+"操作系统:"+mo["Caption"].ToString()+"\n";

}

if(mo["InstallDate"]!=null)

{

OSinfo=OSinfo+"安装日期:"+(mo["InstallDate"].ToString()).Substring(0,8)+"\n";

}



}

MCosInfo=null;

moc=null;



ManagementClassmcSys=newManagementClass("Win32_ComputerSystem");

ManagementObjectCollectionmocSys=mcSys.GetInstances();

foreach(ManagementObjectmoinmocSys)

{

if(mo["UserName"]!=null)

{

OSinfo=OSinfo+"计算机当前用户:"+mo["UserName"].ToString()+"\n";

}

if(mo["Name"]!=null)

{

OSinfo=OSinfo+"计算机名称:"+mo["Name"].ToString()+"\n";

}

}

mocSys=null;

mcSys=null;

returnOSinfo;

}

#endregion

#region网卡、声卡、显卡、内存

///

///获取网卡信息

///


publicstringgetNetWorkAdapter()

{

stringNetworkInfo="";

NetworkInterface[]fNetworkInterfaces=NetworkInterface.GetAllNetworkInterfaces();

foreach(NetworkInterfaceadapterinfNetworkInterfaces)

{

#region"网卡类型"



stringfCardType="未知网卡";

stringfRegistryKey="SYSTEM\\CurrentControlSet\\Control\\Network\\{4D36E972-E325-11CE-BFC1-08002BE10318}\\"+adapter.Id+"\\Connection";

RegistryKeyrk=Registry.LocalMachine.OpenSubKey(fRegistryKey,false);



if(rk!=null)

{

//区分PnpInstanceID

//如果前面有PCI就是本机的真实网卡

//MediaSubType为01则是常见网卡,02为无线网卡。

stringfPnpInstanceID=rk.GetValue("PnpInstanceID","").ToString();

intfMediaSubType=Convert.ToInt32(rk.GetValue("MediaSubType",0));



if(fPnpInstanceID.Length>3&&

fPnpInstanceID.Substring(0,3)=="PCI")

{

fCardType="物理网卡";

}

elseif(fMediaSubType==1)

fCardType="虚拟网卡";

elseif(fMediaSubType==2)

{

fCardType="无线网卡";

}

}

#endregion

//条件:接手多播,开始使用,物理网卡

if(adapter.SupportsMulticast&&adapter.OperationalStatus.ToString()=="Up"&&fCardType=="物理网卡")

{

//NetworkInfo=NetworkInfo+"适配器类型:"+fCardType+"\n";

NetworkInfo=NetworkInfo+"网络适配器名称:"+adapter.Description.ToString()+"\n";

NetworkInfo=NetworkInfo+"mac地址:"+adapter.GetPhysicalAddress().ToString()+"\n";



#region获取IP

IPInterfacePropertiesfIPInterfaceProperties=adapter.GetIPProperties();

UnicastIPAddressInformationCollectionUnicastIPAddressInformationCollection=fIPInterfaceProperties.UnicastAddresses;

foreach(UnicastIPAddressInformationUnicastIPAddressInformationinUnicastIPAddressInformationCollection)

{

if(UnicastIPAddressInformation.Address.AddressFamily==AddressFamily.InterNetwork)

NetworkInfo=NetworkInfo+"IP地址:"+UnicastIPAddressInformation.Address+"\n";

}

#endregion

}



}



returnNetworkInfo;



}



///

///获取声卡信息

///


///

publicstringgetSoundDevice()

{

stringsoundInfo="";

ManagementClasssountClass=newManagementClass("Win32_SoundDevice");

ManagementObjectCollectionmc=sountClass.GetInstances();

foreach(ManagementObjectmoinmc)

{

if(mo["Status"]!=null&&mo["Status"].ToString()=="OK")

{

if(mo["Description"]!=null)

{

soundInfo=soundInfo+"声卡描述:"+mo["Description"].ToString()+"\n";

}

}

//soundInfo=soundInfo+"声卡状态:"+mo["Status"].ToString()+"\n";

//soundInfo=soundInfo+"声卡使状态用:"+mo["PowerManagementSupported"].ToString()+"\n";

//soundInfo=soundInfo+"声卡使状态用2:"+mo["ConfigManagerUserConfig"].ToString()+"\n";

}

mc.Dispose();

sountClass.Dispose();

returnsoundInfo;

}



///

///获取显卡信息

///


///

publicstringgetVideoCardInfo()

{

ArrayListmylist=newArrayList();

stringvideoInfo="";

ManagementClassmcVideo=newManagementClass("Win32_VideoController");

ManagementObjectCollectionmc=mcVideo.GetInstances();

foreach(ManagementObjectmoinmc)

{

if(!mylist.Contains(mo["Description"].ToString()))

{

if(mo["Description"]!=null)

{

mylist.Add(mo["Description"].ToString());

videoInfo=videoInfo+"显卡描述:"+mo["Description"].ToString()+"\n";

}

if(mo["CurrentVerticalResolution"]!=null)

{

videoInfo=videoInfo+"像素管线数量:"+mo["CurrentVerticalResolution"].ToString()+"\n";

}

if(mo["AdapterRAM"]!=null)

{

videoInfo=videoInfo+"显存:"+((double.Parse(mo["AdapterRAM"].ToString())/1024)/1024).ToString("0.00")+"M\n";

}

if(mo["CurrentRefreshRate"]!=null)

{

videoInfo=videoInfo+"频率:"+mo["CurrentRefreshRate"].ToString()+"HZ\n";

}

}

}

mylist.Clear();

mc.Dispose();

mcVideo.Dispose();

returnvideoInfo;

}



[DllImport("kernel32")]

publicstaticexternvoidGlobalMemoryStatus(refMEMORY_INFOmeminfo);



//定义内存的信息结构

[StructLayout(LayoutKind.Sequential)]

publicstructMEMORY_INFO

{

publicuintdwLength;

publicuintdwMemoryLoad;

publicuintdwTotalPhys;

publicuintdwAvailPhys;

publicuintdwTotalPageFile;

publicuintdwAvailPageFile;

publicuintdwTotalVirtual;

publicuintdwAvailVirtual;

}

///

///获取内存信息

///


///

publicstringgetMemoryInfo()

{

stringmemoryInfo="";

doubletotalCapacity=0;

ManagementClassMCmemory=newManagementClass("Win32_PhysicalMemory");

ManagementObjectCollectionmc=MCmemory.GetInstances();

foreach(ManagementObjectmoinmc)

{

if(mo["Capacity"]!=null)

{

totalCapacity+=double.Parse(mo["Capacity"].ToString());

}

//if(mo["TypeDetail"]!=null)

//{

//memoryInfo=memoryInfo+"类型:"+mo["TypeDetail"].ToString()+"\n";

//}

//if(mo["BankLabel"]!=null)

//{

//memoryInfo=memoryInfo+"名称:"+mo["BankLabel"].ToString()+"\n";

//}

//if(mo["PartNumber"]!=null)

//{

//memoryInfo=memoryInfo+"保存单元元素:"+mo["PartNumber"].ToString()+"\n";

//}

}

mc.Dispose();

MCmemory.Dispose();

doublerate=0;

MEMORY_INFOMemInfo;

MemInfo=newMEMORY_INFO();

GlobalMemoryStatus(refMemInfo);//调用GlobalMemoryStatus函数获取内存的相关信息

rate=double.Parse(MemInfo.dwMemoryLoad.ToString());//使用率

memoryInfo=memoryInfo+"内存使用率:"+rate+"%\n";

memoryInfo=memoryInfo+"内存总大小:"+(totalCapacity/1024/1024/1024).ToString("0.00")+"G\n";

returnmemoryInfo;

}

#endregion

#region主板、BIOS、显示器

///

///获取主板信息

///


///

publicstringgetBaseBoardInfo()

{

stringbaseBoardInfo="";

ManagementClassMCbaseBoard=newManagementClass("Win32_BaseBoard");

ManagementObjectCollectionmc=MCbaseBoard.GetInstances();

foreach(ManagementObjectmoinmc)

{

if(mo["SerialNumber"]!=null)

{

baseBoardInfo=baseBoardInfo+"主板序列号:"+mo["SerialNumber"].ToString()+"\n";

}

if(mo["Manufacturer"]!=null)

{

baseBoardInfo=baseBoardInfo+"主板制造商:"+mo["Manufacturer"].ToString()+"\n";

}

if(mo["Product"]!=null)

{

baseBoardInfo=baseBoardInfo+"主板版本型号:"+mo["Product"].ToString()+"\n";

}

}

mc.Dispose();

MCbaseBoard.Dispose();

returnbaseBoardInfo;

}





///

///获取BIOS信息

///


///

publicstringgetBiosInfo()

{

stringBiosInfo="";

ManagementClassMCbois=newManagementClass("Win32_BIOS");

ManagementObjectCollectionmc=MCbois.GetInstances();

foreach(ManagementObjectmoinmc)

{

if(mo["Version"]!=null)

{

BiosInfo=BiosInfo+"BIOS版本:"+mo["Version"].ToString()+"\n";

}

if(mo["ReleaseDate"]!=null)

{

BiosInfo=BiosInfo+"BIOS日期:"+mo["ReleaseDate"].ToString().Substring(0,8)+"\n";

}

}

mc.Dispose();

MCbois.Dispose();

returnBiosInfo;

}





///

///获取显示器信息

///


///

publicstringgetMoniterInfo()

{

stringmoniterInfo="";

ManagementClassmcMonitor=newManagementClass("Win32_DesktopMonitor");

ManagementObjectCollectionmc=mcMonitor.GetInstances();

foreach(ManagementObjectmoinmc)

{

if(mo["MonitorManufacturer"]!=null)

{

moniterInfo=moniterInfo+"显示器制造商:"+mo["MonitorManufacturer"].ToString()+"\n";

}

if(mo["MonitorType"]!=null)

{

moniterInfo=moniterInfo+"显示器类型:"+mo["MonitorType"].ToString()+"\n";

}

if(mo["Name"]!=null)

{

moniterInfo=moniterInfo+"显示器名称:"+mo["Name"].ToString()+"\n";

}

if(mo["ScreenHeight"]!=null)

{

moniterInfo=moniterInfo+"显示器高度:"+mo["ScreenHeight"].ToString()+"px\n";

}

if(mo["ScreenWidth"]!=null)

{

moniterInfo=moniterInfo+"显示器宽度:"+mo["ScreenWidth"].ToString()+"px\n";

}

}

returnmoniterInfo;

}

#endregion

}

}



献花(0)
+1
(本文系Honey_Dog首藏)