1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > C#获取自己电脑相关设备信息

C#获取自己电脑相关设备信息

时间:2023-11-24 17:10:39

相关推荐

C#获取自己电脑相关设备信息

项目中需要添加System.Management引用

1. 在'解决方案资源管理器' 窗口中->右击项目-> '添加' -> '引用' 弹出引用管理器

2. 在引用处理器中,程序集-> 框架 -> 选中 'System.Management' -> 确认

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Management;using System.IO;namespace AliWorkbenchProgram{/// <summary>/// Computer Information/// </summary>class ClassComputerOp{public string CpuID;public string MacAddress;public string DiskID;public string IpAddress;public string LoginUserName;public string ComputerName;public string SystemType;public string TotalPhysicalMemory;//单位:Mprivate static ClassComputerOp _instance;public static ClassComputerOp Instance(){if (_instance == null)_instance = new ClassComputerOp();return _instance;}protected ClassComputerOp(){CpuID = GetCpuID();MacAddress = GetMacAddress();DiskID = GetDiskID();IpAddress = GetIPAddress();LoginUserName = GetUserName();SystemType = GetSystemType();TotalPhysicalMemory = GetTotalPhysicalMemory();ComputerName = GetComputerName();}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";}finally{}}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";}finally{}}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";}finally{}}string GetDiskID(){try{//获取硬盘IDString HDid = "";ManagementClass mc = new ManagementClass("Win32_DiskDrive");ManagementObjectCollection moc = mc.GetInstances();foreach (ManagementObject mo in moc){HDid = (string)mo.Properties["Model"].Value;}moc = null;mc = null;return HDid;}catch{return "unknow";}finally{}}///<summary>///操作系统的登录用户名///</summary>///<returns></returns>string GetUserName(){try{string st = "";ManagementClass mc = new ManagementClass("Win32_ComputerSystem");ManagementObjectCollection moc = mc.GetInstances();foreach (ManagementObject mo in moc){st = mo["UserName"].ToString();}moc = null;mc = null;return st;}catch{return "unknow";}finally{}}///<summary>///PC类型///</summary>///<returns></returns>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";}finally{}}///<summary>///物理内存///</summary>///<returns></returns>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";}finally{}}///<summary>//////</summary>///<returns></returns>string GetComputerName(){try{return System.Environment.GetEnvironmentVariable("ComputerName");}catch{return "unknow";}finally{}}//// 取得设备硬盘的卷标号 此方法为取硬盘逻辑分区序列号,重新格式化会改变public static string GetDiskVolumeSerialNumber(){ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");ManagementObject disk = new ManagementObject("win32_logicaldisk.deviceid=\"c:\"");disk.Get();return disk.GetPropertyValue("VolumeSerialNumber").ToString();}// 取得设备硬盘的物理序列号 public static string GetDiskSerialNumber(){ManagementObjectSearcher mos = new ManagementObjectSearcher();mos.Query = new SelectQuery("Win32_DiskDrive", "", new string[] { "PNPDeviceID", "Signature" });ManagementObjectCollection myCollection = mos.Get();ManagementObjectCollection.ManagementObjectEnumerator em = myCollection.GetEnumerator();em.MoveNext();ManagementBaseObject moo = em.Current;string id = moo.Properties["signature"].Value.ToString().Trim();return id;}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)work: //网络驱动{//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;}//获取当前计算机逻辑磁盘名称列表String[] drives = Environment.GetLogicalDrives();//Console.WriteLine("GetLogicalDrives: {0}", String.Join(", ", drives));}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。