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

本文实例讲述了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#程序设计有所帮助。

(0)

相关推荐

  • C#如何取硬件标志

    using System; using System.Runtime.InteropServices; using  System.Management; namespace Hardware { /// <summary> /// Hardware_Mac 的摘要说明. /// </summary> public class HardwareInfo {   //取机器名    public string GetHostName()   {    return System.Ne

  • C#编程获取各种电脑硬件信息的方法示例

    本文实例讲述了C#编程获取各种电脑硬件信息的方法.分享给大家供大家参考,具体如下: 获取CPU编号: ManagementClass mc = new ManagementClass("Win32_Processor"); ManagementObjectCollection moc = mc.GetInstances(); string strID = null ; foreach( ManagementObject mo in moc ) { strID = mo.Properti

  • C# 获取硬件参数的实现方法

    C# 获取硬件参数的实现方法 示例代码: private static string GetIdentifier(string wmiClass, string wmiProperty, string wmiMustBeTrue) { string result = ""; System.Management.ManagementClass mc = new System.Management.ManagementClass(wmiClass); System.Management.M

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

    本文实例讲述了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.Manag

  • JavaScript获取客户端计算机硬件及系统等信息的方法

    JavaScript 获取客户端计算机硬件及系统信息 通过WMI来实现获取客户端计算机硬件及系统信息: 复制代码 代码如下: function getSysInfo(){ var locator = new ActiveXObject ("WbemScripting.SWbemLocator"); var service = locator.ConnectServer("."); //CPU信息 var cpu = new Enumerator (service.E

  • 浅谈使用Java Web获取客户端真实IP的方法示例详解

    Java-Web获取客户端真实IP: 发生的场景:服务器端接收客户端请求的时候,一般需要进行签名验证,客户端IP限定等情况,在进行客户端IP限定的时候,需要首先获取该真实的IP. 一般分为两种情况: 方式一.客户端未经过代理,直接访问服务器端(nginx,squid,haproxy): 方式二.客户端通过多级代理,最终到达服务器端(nginx,squid,haproxy): 客户端请求信息都包含在HttpServletRequest中,可以通过方法getRemoteAddr()获得该客户端IP.

  • ASP.net中获取客户端参数操作系统信息

    复制代码 代码如下: /// <summary> /// 获取用户操作系统信息 /// </summary> /// <returns></returns> public string GetUserOS() { string strSysVersion = "其他"; HttpRequest Request = HttpContext.Current.Request; string strAgentInfo = Request.Serv

  • Java编程获取当前屏幕分辨率的方法示例

    本文实例讲述了Java编程获取当前屏幕分辨率的方法.分享给大家供大家参考,具体如下: /** * This class implements the functionality of fetching the size of the screen */ package com.leo.util; /** * @author Leo Share * @since 07/16/2007 * @version 1.0 */ class ScreenSize{ private int screenWid

  • Android开发使用json实现服务器与客户端数据的交互功能示例

    本文实例讲述了Android开发使用json实现服务器与客户端数据的交互功能.分享给大家供大家参考,具体如下: 第一步:写一个远程查询工具类,使用单例模式 /** * 查询远程服务器的工具 * @author chen.lin * */ public class QueryUtils { //private static final String TAG = "CommonUtils"; private static QueryUtils instance; private Share

  • Android编程实现定时发短信功能示例

    本文实例讲述了Android编程实现定时发短信功能.分享给大家供大家参考,具体如下: 第一,要实现发短信的功能,必须要用到android系统中发短信的权限,即在AndoridManifest.xml中添加如下内容 <uses-permissionandroid:name="android.permission.SEND_SMS"/> 第二,使用AlarmManager来实现一个倒计时的功能,当时间到时发送短   信.AlarmManager有两个相似的用法: 1.在指定时常

  • Android编程实现的短信编辑器功能示例

    本文实例讲述了Android编程实现的短信编辑器功能.分享给大家供大家参考,具体如下: 修改短信数据库,从而生成任意手机号发送的短信. AndroidManifest.xml <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.ex

  • Python实现基于TCP UDP协议的IPv4 IPv6模式客户端和服务端功能示例

    本文实例讲述了Python实现基于TCP UDP协议的IPv4 IPv6模式客户端和服务端功能.分享给大家供大家参考,具体如下: 由于目前工作的需要,需要在IPv4和IPv6两种网络模式下TCP和UDP的连接,要做到客户端发包,服务端收包. 前几天写了代码,但是把UDP的客户端和服务端使用TCP模式的代码了.今天在公司使用该工具的时候,发现了问题,忘记了UDP不需要验证.疏忽,疏忽.不过刚刚接触编程,可以原谅. 现在在家,已经把代码改好了.经测试可以使用. 先运行客户端: python Mini

  • Python3.4编程实现简单抓取爬虫功能示例

    本文实例讲述了Python3.4编程实现简单抓取爬虫功能.分享给大家供大家参考,具体如下: import urllib.request import urllib.parse import re import urllib.request,urllib.parse,http.cookiejar import time def getHtml(url): cj=http.cookiejar.CookieJar() opener=urllib.request.build_opener(urllib.

随机推荐