C#获取计算机硬件与操作系统的相关信息
作者:農碼一生
这篇文章介绍了C#获取计算机硬件与操作系统相关信息的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
1、项目引用System.Management库文件
2、创建HardwareHandler.cs类文件
namespace HardInfoTest.Utility { /// <summary> /// 计算机硬件处理类 /// </summary> public class HardwareHandler { public enum WMIPath { // 硬件 Win32_Processor, // CPU 处理器 Win32_PhysicalMemory, // 物理内存条 Win32_Keyboard, // 键盘 Win32_PointingDevice, // 点输入设备,包括鼠标。 Win32_FloppyDrive, // 软盘驱动器 Win32_DiskDrive, // 硬盘驱动器 Win32_CDROMDrive, // 光盘驱动器 Win32_BaseBoard, // 主板 Win32_BIOS, // BIOS 芯片 Win32_ParallelPort, // 并口 Win32_SerialPort, // 串口 Win32_SerialPortConfiguration, // 串口配置 Win32_SoundDevice, // 多媒体设置,一般指声卡。 Win32_SystemSlot, // 主板插槽 (ISA & PCI & AGP) Win32_USBController, // USB 控制器 Win32_NetworkAdapter, // 网络适配器 Win32_NetworkAdapterConfiguration, // 网络适配器设置 Win32_Printer, // 打印机 Win32_PrinterConfiguration, // 打印机设置 Win32_PrintJob, // 打印机任务 Win32_TCPIPPrinterPort, // 打印机端口 Win32_POTSModem, // MODEM Win32_POTSModemToSerialPort, // MODEM 端口 Win32_DesktopMonitor, // 显示器 Win32_DisplayConfiguration, // 显卡 Win32_DisplayControllerConfiguration, // 显卡设置 Win32_VideoController, // 显卡细节。 Win32_VideoSettings, // 显卡支持的显示模式。 // 操作系统 Win32_TimeZone, // 时区 Win32_SystemDriver, // 驱动程序 Win32_DiskPartition, // 磁盘分区 Win32_LogicalDisk, // 逻辑磁盘 Win32_LogicalDiskToPartition, // 逻辑磁盘所在分区及始末位置。 Win32_LogicalMemoryConfiguration, // 逻辑内存配置 Win32_PageFile, // 系统页文件信息 Win32_PageFileSetting, // 页文件设置 Win32_BootConfiguration, // 系统启动配置 Win32_ComputerSystem, // 计算机信息简要 Win32_OperatingSystem, // 操作系统信息 Win32_StartupCommand, // 系统自动启动程序 Win32_Service, // 系统安装的服务 Win32_Group, // 系统管理组 Win32_GroupUser, // 系统组帐号 Win32_UserAccount, // 用户帐号 Win32_Process, // 系统进程 Win32_Thread, // 系统线程 Win32_Share, // 共享 Win32_NetworkClient, // 已安装的网络客户端 Win32_NetworkProtocol, // 已安装的网络协议 } /// <summary> /// Cpu信息 /// </summary> /// <returns></returns> public void CpuInfo() { try { ManagementClass mc = new ManagementClass(WMIPath.Win32_Processor.ToString()); ManagementObjectCollection moc = mc.GetInstances(); Console.WriteLine("==================================="); foreach (ManagementObject mo in moc) { Console.WriteLine("CPU编号:" + mo.Properties["ProcessorId"].Value); Console.WriteLine("CPU型号:" + mo.Properties["Name"].Value); Console.WriteLine("CPU状态:" + mo.Properties["Status"].Value); Console.WriteLine("主机名称:" + mo.Properties["SystemName"].Value); } Console.WriteLine("==================================="); } catch { Console.WriteLine("Error"); } } /// <summary> /// 主板信息 /// </summary> public void MainBoardInfo() { try { ManagementClass mc = new ManagementClass(WMIPath.Win32_BaseBoard.ToString()); ManagementObjectCollection moc = mc.GetInstances(); Console.WriteLine("==================================="); foreach (ManagementObject mo in moc) { Console.WriteLine("主板ID:" + mo.Properties["SerialNumber"].Value); Console.WriteLine("制造商:" + mo.Properties["Manufacturer"].Value); Console.WriteLine("型号:" + mo.Properties["Product"].Value); Console.WriteLine("版本:" + mo.Properties["Version"].Value); } Console.WriteLine("==================================="); } catch { Console.WriteLine("Error"); } } /// <summary> /// 硬盘信息 /// </summary> public void DiskDriveInfo() { try { ManagementClass mc = new ManagementClass(WMIPath.Win32_DiskDrive.ToString()); ManagementObjectCollection moc = mc.GetInstances(); Console.WriteLine("==================================="); foreach (ManagementObject mo in moc) { Console.WriteLine("硬盘SN:" + mo.Properties["SerialNumber"].Value); Console.WriteLine("型号:" + mo.Properties["Model"].Value); Console.WriteLine("大小:" + Convert.ToDouble(mo.Properties["Size"].Value) / (1024 * 1024 * 1024)); } Console.WriteLine("==================================="); } catch { Console.WriteLine("Error"); } } /// <summary> /// 网络连接信息 /// </summary> public void NetworkInfo() { try { ManagementClass mc = new ManagementClass(WMIPath.Win32_NetworkAdapterConfiguration.ToString()); ManagementObjectCollection moc = mc.GetInstances(); Console.WriteLine("==================================="); foreach (ManagementObject mo in moc) { Console.WriteLine("MAC地址:" + mo.Properties["MACAddress"].Value); Console.WriteLine("IP地址:" + mo.Properties["IPAddress"].Value); } Console.WriteLine("==================================="); } catch { Console.WriteLine("Error"); } } /// <summary> /// 操作系统信息 /// </summary> public void OsInfo() { try { ManagementClass mc = new ManagementClass(WMIPath.Win32_OperatingSystem.ToString()); ManagementObjectCollection moc = mc.GetInstances(); Console.WriteLine("==================================="); foreach (ManagementObject mo in moc) { Console.WriteLine("操作系统:" + mo.Properties["Name"].Value); Console.WriteLine("版本:" + mo.Properties["Version"].Value); Console.WriteLine("系统目录:" + mo.Properties["SystemDirectory"].Value); } Console.WriteLine("==================================="); } catch { Console.WriteLine("Error"); } } } }
3、调用测试代码
static void Main(string[] args) { HardwareHandler hd = new HardwareHandler(); hd.CpuInfo(); hd.DiskDriveInfo(); hd.MainBoardInfo(); hd.NetworkInfo(); hd.OsInfo(); }
4、测试输出截图
到此这篇关于C#获取计算机硬件与操作系统相关信息的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持脚本之家。