C#获取客户端计算机硬件及系统信息

C#获取客户端计算机硬件及系统信息

1、项目引用System.Management库。

2、创建HardwareHandler.cs类文件

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Management;

namespace MyStudy.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();
                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);
                }
            }
            catch
            {
                Console.WriteLine("Erroe");
            }
        }

        /// <summary>
        /// 主板信息
        /// </summary>
        public void MainBoardInfo()
        {
            try
            {
                ManagementClass mc = new ManagementClass(WMIPath.Win32_BaseBoard.ToString());
                ManagementObjectCollection moc = mc.GetInstances();
                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);
                }
            }
            catch
            {
                Console.WriteLine("Erroe");
            }
        }

        /// <summary>
        /// 硬盘信息
        /// </summary>
        public void DiskDriveInfo()
        {
            try
            {
                ManagementClass mc = new ManagementClass(WMIPath.Win32_DiskDrive.ToString());
                ManagementObjectCollection moc = mc.GetInstances();
                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));
                }
            }
            catch
            {
                Console.WriteLine("Erroe");
            }
        }

        /// <summary>
        /// 网络连接信息
        /// </summary>
        public void NetworkInfo()
        {
            try
            {
                ManagementClass mc = new ManagementClass(WMIPath.Win32_NetworkAdapterConfiguration.ToString());
                ManagementObjectCollection moc = mc.GetInstances();
                foreach (ManagementObject mo in moc)
                {
                    Console.WriteLine("MAC地址:" + mo.Properties["MACAddress"].Value);
                    Console.WriteLine("IP地址:" + mo.Properties["IPAddress"].Value);
                }
            }
            catch
            {
                Console.WriteLine("Erroe");
            }
        }

        /// <summary>
        /// 操作系统信息 
        /// </summary>
        public void OsInfo()
        {
            try
            {
                ManagementClass mc = new ManagementClass(WMIPath.Win32_OperatingSystem.ToString());
                ManagementObjectCollection moc = mc.GetInstances();
                foreach (ManagementObject mo in moc)
                {
                    Console.WriteLine("操作系统:" + mo.Properties["Name"].Value);
                    Console.WriteLine("版本:" + mo.Properties["Version"].Value);
                    Console.WriteLine("系统目录:" + mo.Properties["SystemDirectory"].Value);
                }
            }
            catch
            {
                Console.WriteLine("Erroe");
            }
        }
    }
}

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

pan_junbiao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值