欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C#编程获取客户端计算机硬件及系统信息功能示例

程序员文章站 2022-04-21 08:33:12
本文实例讲述了c#编程获取客户端计算机硬件及系统信息功能。分享给大家供大家参考,具体如下: 这里使用c#获取客户端计算机硬件及系统信息 ,包括cpu、硬盘、ip、mac地...

本文实例讲述了c#编程获取客户端计算机硬件及系统信息功能。分享给大家供大家参考,具体如下:

这里使用c#获取客户端计算机硬件及系统信息 ,包括cpu、硬盘、ip、mac地址、操作系统等。

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");
      }
    }
  }
}

更多关于c#相关内容感兴趣的读者可查看本站专题:《c#程序设计之线程使用技巧总结》、《winform控件用法总结》、《c#中xml文件操作技巧汇总》、《c#常见控件用法教程》、《c#数据结构与算法教程》、《c#数组操作技巧总结》及《c#面向对象程序设计入门教程

希望本文所述对大家c#程序设计有所帮助。