方法大多是从网上搜到的,由于出处太多,有一些方法又经过了修改,具体出处已无从考证,如有冒犯望谅解,此处仅供学习使用
首先引用System.Management
获取硬盘信息
- 方法一
/// <summary>
/// 硬盘ID,大小
/// </summary>
/// <returns></returns>
public Dictionary<string, string> GetDisk()
{
Dictionary<string, string> dic = new Dictionary<string, string>();
ManagementClass mc = new ManagementClass("Win32_DiskDrive");
ManagementObjectCollection moc = mc.GetInstances();
foreach (ManagementObject mo in moc)
{
string HDid = (string)mo.Properties["Model"].Value;
string bytes = mo["Size"].ToString();
dic.Add(HDid, bytes);
}
moc = null;
mc = null;
return dic;
}
- 方法二
/// <summary>
/// 获取驱动盘符
/// C,D,E,F
/// </summary>
/// <returns></returns>
public List<string> GetRemovableDeviceID()
{
List<string> deviceIDs = new List<string>();
ManagementObjectSearcher query = new ManagementObjectSearcher("SELECT * From Win32_LogicalDisk ");
ManagementObjectCollection queryCollection = query.Get();
foreach (ManagementObject mo in queryCollection)
{
switch (int.Parse(mo["DriveType"].ToString()))
{
case (int)DriveType.Removable: //可以移动磁盘
{
//MessageBox.Show("可以移动磁盘");
deviceIDs.Add(mo["DeviceID"].ToString());
break;
}
case (int)DriveType.Fixed: //本地磁盘
{
//MessageBox.Show("本地磁盘");
deviceIDs.Add(mo["DeviceID"].ToString());
break;
}
case (int)DriveType.CDRom: //CD rom drives
{
//MessageBox.Show("CD rom drives ");
break;
}
case (int)DriveType.Network: //网络驱动
{
//MessageBox.Show("网络驱动器 ");
break;
}
case (int)DriveType.Ram:
{
//MessageBox.Show("驱动器是一个 RAM 磁盘 ");
break;
}
case (int)DriveType.NoRootDirectory:
{
//MessageBox.Show("驱动器没有根目录 ");
break;
}
default: //defalut to folder
{
//MessageBox.Show("驱动器类型未知 ");
break;
}
}
}
return deviceIDs;
}
- 方法三
/// <summary>
/// 物理内存
/// </summary>
/// <returns></returns>
public string GetTotalPhysicalMemory()
{
try
{
string st = "";
ManagementClass mc = new ManagementClass("Win32_ComputerSystem");
ManagementObjectCollection moc = mc.GetInstances();
foreach (ManagementObject mo in moc)
{
st = mo["TotalPhysicalMemory"].ToString();
}
moc = null;
mc = null;
return st;
}
catch
{
return "unknow";
}
}
- 方法四
获取每个盘符大小
List<string> drives = GetRemovableDeviceID();
foreach(string d in drives)
{
long G = TotalPhys(d);
}
public long DrivePhys(string drive)
{
ManagementObject disk = new ManagementObject("win32_logicaldisk.deviceid=\"" + drive + "\"");
disk.Get();
string bytes = disk["Size"].ToString();
return long.Parse(bytes);
}
- 方法五
/// <summary>
/// 物理内存总大小
/// </summary>
public static string TotalPhys()
{
ManagementObjectSearcher objvide = new ManagementObjectSearcher("select * from Win32_DiskDrive");
string ret = null;
foreach (ManagementObject obj in objvide.Get())
{
string a = obj["MediaType"].ToString();
string a1 = obj["SizeBytes"].ToString();
}
return ret;
}
- 方法六
/// <summary>
/// 物理内存总大小
/// </summary>
public static string TotalPhys()
{
ManagementObjectSearcher objvide = new ManagementObjectSearcher("select * from CIM_OperatingSystem");
string ret = null;
foreach (ManagementObject obj in objvide.Get())
{
// 具体这四种都是什么记不清了,看英文吧,不过好像不是很准
string a = obj["FreePhysicalMemory"].ToString();
string a1 = obj["FreeVirtualMemory"].ToString();
string a2 = obj["TotalVirtualMemorySize"].ToString();
string a3 = obj["TotalVisibleMemorySize"].ToString();
}
return ret;
}
获取声卡
/// <summary>
/// 获取声卡
/// </summary>
/// <returns></returns>
public string SoundDevice()
{
ManagementObjectSearcher objvide = new ManagementObjectSearcher("select * from Win32_SoundDevice");
string ret = null;
foreach (ManagementObject obj in objvide.Get())
{
ret = obj["Name"].ToString();
//string a = "Name - " + obj["Name"];
//string a1 = "DeviceID - " + obj["DeviceID"];
//string a2 = "AdapterRAM - " + obj["AdapterRAM"];
//string a3 = "AdapterDACType - " + obj["AdapterDACType"] ;
//string a4 = "Monochrome - " + obj["Monochrome"];
//string a5 = "InstalledDisplayDrivers - " + obj["InstalledDisplayDrivers"];
//string a6 = "DriverVersion - " + obj["DriverVersion"];
//string a7 = "VideoProcessor - " + obj["VideoProcessor"];
//string a8 = "VideoArchitecture - " + obj["VideoArchitecture"];
//string a9 = "VideoMemoryType - " + obj["VideoMemoryType"];
}
return ret;
}
获取显卡
/// <summary>
/// 获取显卡
/// </summary>
public string GetVGACard()
{
ManagementObjectSearcher objvide = new ManagementObjectSearcher("select * from Win32_VideoController");
string ret = null;
foreach (ManagementObject obj in objvide.Get())
{
ret = obj["Name"].ToString();
//string a = "Name - " + obj["Name"];
//string a1 = "DeviceID - " + obj["DeviceID"];
//string a2 = "AdapterRAM - " + obj["AdapterRAM"];
//string a3 = "AdapterDACType - " + obj["AdapterDACType"] ;
//string a4 = "Monochrome - " + obj["Monochrome"];
//string a5 = "InstalledDisplayDrivers - " + obj["InstalledDisplayDrivers"];
//string a6 = "DriverVersion - " + obj["DriverVersion"];
//string a7 = "VideoProcessor - " + obj["VideoProcessor"];
//string a8 = "VideoArchitecture - " + obj["VideoArchitecture"];
//string a9 = "VideoMemoryType - " + obj["VideoMemoryType"];
}
return ret;
}
显卡配置信息说明http://blog.csdn.net/yeyingss/article/details/49385447
操作系统
/// <summary>
/// 获取操作系统
/// </summary>
/// <returns></returns>
public string GetSys()
{
var name = (from x in new ManagementObjectSearcher("SELECT Caption FROM Win32_OperatingSystem").Get().Cast<ManagementObject>()
select x.GetPropertyValue("Caption")).FirstOrDefault();
return name != null ? name.ToString() : "Unknown";
}
电脑类型
/// <summary>
/// 电脑类型
/// </summary>
/// <returns></returns>
public ChassisTypes GetComputerType()
{
ManagementClass systemEnclosures = new ManagementClass("Win32_SystemEnclosure");
foreach (ManagementObject obj in systemEnclosures.GetInstances())
{
foreach (int i in (UInt16[])(obj["ChassisTypes"]))
{
if (i > 0 && i < 25)
{
return (ChassisTypes)i;
}
}
}
return ChassisTypes.Unknown;
}
public enum ChassisTypes
{
Other = 1,
Unknown,
Desktop,
LowProfileDesktop,
PizzaBox,
MiniTower,
Tower,
Portable,
Laptop,
Notebook,
Handheld,
DockingStation,
AllInOne,
SubNotebook,
SpaceSaving,
LunchBox,
MainSystemChassis,
ExpansionChassis,
SubChassis,
BusExpansionChassis,
PeripheralChassis,
StorageChassis,
RackMountChassis,
SealedCasePC
}
系统名称
/// <summary>
/// 系统名称
/// </summary>
/// <returns></returns>
public string GetComputerName()
{
try
{
return System.Environment.GetEnvironmentVariable("ComputerName");
}
catch
{
return "unknow";
}
}
PC位数
/// <summary>
/// PC位数
/// </summary>
/// <returns></returns>
public string GetSystemType()
{
try
{
string st = "";
ManagementClass mc = new ManagementClass("Win32_ComputerSystem");
ManagementObjectCollection moc = mc.GetInstances();
foreach (ManagementObject mo in moc)
{
st = mo["SystemType"].ToString();
}
moc = null;
mc = null;
return st;
}
catch
{
return "unknow";
}
}
public string GetSystemType()
{
try
{
string st = "";
ManagementClass mc = new ManagementClass("Win32_ComputerSystem");
ManagementObjectCollection moc = mc.GetInstances();
foreach (ManagementObject mo in moc)
{
st = mo["SystemType"].ToString();
}
moc = null;
mc = null;
return st;
}
catch
{
return "unknow";
}
}
系统登录用户
/// <summary>
/// 操作系统的登录用户名
/// </summary>
/// <returns></returns>
public string GetUserName()
{
try
{
string st = "";
ManagementClass mc = new ManagementClass("Win32_Processor");
ManagementObjectCollection moc = mc.GetInstances();
foreach (ManagementObject mo in moc)
{
st = mo["AddressWidth"].ToString();
}
moc = null;
mc = null;
return st;
}
catch
{
return "unknow";
}
}
Win32_Processor参数说明http://blog.csdn.net/yeyingss/article/details/49385421
IP地址
/// <summary>
/// IP地址
/// </summary>
/// <returns></returns>
public string GetIPAddress()
{
try
{
//获取IP地址
string st = "";
ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection moc = mc.GetInstances();
foreach (ManagementObject mo in moc)
{
if ((bool)mo["IPEnabled"] == true)
{
//st=mo["IpAddress"].ToString();
System.Array ar;
ar = (System.Array)(mo.Properties["IpAddress"].Value);
st = ar.GetValue(0).ToString();
break;
}
}
moc = null;
mc = null;
return st;
}
catch
{
return "unknow";
}
}
mac地址
/// <summary>
/// MAC地址
/// </summary>
/// <returns></returns>
public string GetMacAddress()
{
try
{
string mac = "";
ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection moc = mc.GetInstances();
foreach (ManagementObject mo in moc)
{
if ((bool)mo["IPEnabled"] == true)
{
mac = mo["MacAddress"].ToString();
break;
}
}
moc = null;
mc = null;
return mac;
}
catch
{
return "unknow";
}
}
CPU序列号
/// <summary>
/// CPU序列号
/// </summary>
/// <returns></returns>
public string GetCpuID()
{
try
{
//获取CPU序列号代码
string cpuInfo = "";//cpu序列号
ManagementClass mc = new ManagementClass("Win32_Processor");
ManagementObjectCollection moc = mc.GetInstances();
foreach (ManagementObject mo in moc)
{
cpuInfo = mo.Properties["ProcessorId"].Value.ToString();
}
moc = null;
mc = null;
return cpuInfo;
}
catch
{
return "unknow";
}
}
读取内存
需要引用:Microsoft.VisualBasic
参考http://blog.csdn.net/kmguo/article/details/20560393
using System;
using Microsoft.VisualBasic.Devices;
namespace ConsoleApplication2
{
internal class Program
{
private static void Main(string[] args)
{
ComputerInfo ci = new ComputerInfo();
Console.WriteLine("系统物理内存(M):"+ci.TotalPhysicalMemory/1024/1024);
Console.WriteLine("系统虚拟内存(M):"+ci.TotalVirtualMemory/1024/1024);
Console.WriteLine("可用物理内存(M):"+ci.AvailablePhysicalMemory/1024/1024);
Console.WriteLine("可用虚拟内存(M):" + ci.AvailableVirtualMemory/1024/1024);
}
}
}