|
获取磁盘硬盘CPU系统网卡声卡等完整信息 |
|
|
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
}
}
|
|
|
|
|
|
|
|
|
|
|