c#获取机器硬件信息

简介: using System;  using System.Management;  namespace Soyee.
  1. using System;  
  2. using System.Management;  
  3. namespace Soyee.Comm  
  4. {  
  5.     /// <summary>  
  6.     /// Computer Information  
  7.     /// </summary>  
  8.     public class Computer  
  9.     {  
  10.         public string CpuID;  
  11.         public string MacAddress;  
  12.         public string DiskID;  
  13.         public string IpAddress;  
  14.         public string LoginUserName;  
  15.         public string ComputerName;  
  16.         public string SystemType;  
  17.         public string TotalPhysicalMemory; //单位:M  
  18.         private static Computer _instance;  
  19.         public static Computer Instance()  
  20.         {  
  21.             if (_instance == null)  
  22.                 _instance = new Computer();  
  23.             return _instance;  
  24.         }  
  25.         protected  Computer()  
  26.         {  
  27.             CpuID=GetCpuID();  
  28.             MacAddress=GetMacAddress();  
  29.             DiskID=GetDiskID();  
  30.             IpAddress=GetIPAddress();  
  31.             LoginUserName=GetUserName();  
  32.             SystemType=GetSystemType();  
  33.             TotalPhysicalMemory=GetTotalPhysicalMemory();  
  34.             ComputerName=GetComputerName();  
  35.         }  
  36.         string  GetCpuID()  
  37.         {  
  38.             try  
  39.             {  
  40.                 //获取CPU序列号代码  
  41.                 string cpuInfo = "";//cpu序列号  
  42.                 ManagementClass mc = new ManagementClass("Win32_Processor");  
  43.                 ManagementObjectCollection moc = mc.GetInstances();  
  44.                 foreach(ManagementObject mo in moc)  
  45.                 {  
  46.                     cpuInfo = mo.Properties["ProcessorId"].Value.ToString();  
  47.                 }  
  48.                 moc=null;  
  49.                 mc=null;  
  50.                 return cpuInfo;  
  51.             }  
  52.             catch  
  53.             {  
  54.                 return "unknow";  
  55.             }  
  56.             finally  
  57.             {  
  58.             }  
  59.               
  60.         }  
  61.         string  GetMacAddress()  
  62.         {  
  63.             try  
  64.             {  
  65.                 //获取网卡硬件地址  
  66.                 string mac="";  
  67.                 ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");  
  68.                 ManagementObjectCollection moc = mc.GetInstances();  
  69.                 foreach(ManagementObject mo in moc)  
  70.                 {  
  71.                     if((bool)mo["IPEnabled"] == true)  
  72.                     {  
  73.                         mac=mo["MacAddress"].ToString();  
  74.                         break;  
  75.                     }  
  76.                 }  
  77.                 moc=null;  
  78.                 mc=null;  
  79.                 return mac;  
  80.             }  
  81.             catch  
  82.             {  
  83.                 return "unknow";  
  84.             }  
  85.             finally  
  86.             {  
  87.             }  
  88.               
  89.         }  
  90.         string  GetIPAddress()  
  91.         {  
  92.             try  
  93.             {  
  94.                 //获取IP地址  
  95.                 string st="";  
  96.                 ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");  
  97.                 ManagementObjectCollection moc = mc.GetInstances();  
  98.                 foreach(ManagementObject mo in moc)  
  99.                 {  
  100.                     if((bool)mo["IPEnabled"] == true)  
  101.                     {  
  102.                         //st=mo["IpAddress"].ToString();  
  103.                         System.Array ar;  
  104.                         ar=(System.Array)(mo.Properties["IpAddress"].Value);  
  105.                         st=ar.GetValue(0).ToString();  
  106.                         break;  
  107.                     }  
  108.                 }  
  109.                 moc=null;  
  110.                 mc=null;  
  111.                 return st;  
  112.             }  
  113.             catch  
  114.             {  
  115.                 return "unknow";  
  116.             }  
  117.             finally  
  118.             {  
  119.             }  
  120.               
  121.         }  
  122.            
  123.         string  GetDiskID()  
  124.         {  
  125.             try  
  126.             {  
  127.                 //获取硬盘ID  
  128.                 String HDid="";  
  129.                 ManagementClass mc = new ManagementClass("Win32_DiskDrive");  
  130.                 ManagementObjectCollection moc = mc.GetInstances();  
  131.                 foreach(ManagementObject mo in moc)  
  132.                 {  
  133.                     HDid = (string)mo.Properties["Model"].Value;  
  134.                 }  
  135.                 moc=null;  
  136.                 mc=null;  
  137.                 return HDid;  
  138.             }  
  139.             catch  
  140.             {  
  141.                 return "unknow";  
  142.             }  
  143.             finally  
  144.             {  
  145.             }  
  146.                   
  147.         }  
  148.   
  149.         /// <summary>  
  150.         /// 操作系统的登录用户名  
  151.         /// </summary>  
  152.         /// <returns></returns>  
  153.         string  GetUserName()  
  154.         {  
  155.             try  
  156.             {  
  157.                 string st="";  
  158.                 ManagementClass mc = new ManagementClass("Win32_ComputerSystem");  
  159.                 ManagementObjectCollection moc = mc.GetInstances();  
  160.                 foreach(ManagementObject mo in moc)  
  161.                 {  
  162.                       
  163.                     st=mo["UserName"].ToString();  
  164.                       
  165.                 }  
  166.                 moc=null;  
  167.                 mc=null;  
  168.                 return st;  
  169.             }  
  170.             catch  
  171.             {  
  172.                 return "unknow";  
  173.             }  
  174.             finally  
  175.             {  
  176.             }  
  177.               
  178.         }  
  179.   
  180.   
  181.         /// <summary>  
  182.         /// PC类型  
  183.         /// </summary>  
  184.         /// <returns></returns>  
  185.         string  GetSystemType()  
  186.         {  
  187.             try  
  188.             {  
  189.                 string st="";  
  190.                 ManagementClass mc = new ManagementClass("Win32_ComputerSystem");  
  191.                 ManagementObjectCollection moc = mc.GetInstances();  
  192.                 foreach(ManagementObject mo in moc)  
  193.                 {  
  194.                       
  195.                     st=mo["SystemType"].ToString();  
  196.                       
  197.                 }  
  198.                 moc=null;  
  199.                 mc=null;  
  200.                 return st;  
  201.             }  
  202.             catch  
  203.             {  
  204.                 return "unknow";  
  205.             }  
  206.             finally  
  207.             {  
  208.             }  
  209.               
  210.         }  
  211.   
  212.         /// <summary>  
  213.         /// 物理内存  
  214.         /// </summary>  
  215.         /// <returns></returns>  
  216.         string  GetTotalPhysicalMemory()  
  217.         {  
  218.             try  
  219.             {  
  220.                   
  221.                 string st="";  
  222.                 ManagementClass mc = new ManagementClass("Win32_ComputerSystem");  
  223.                 ManagementObjectCollection moc = mc.GetInstances();  
  224.                 foreach(ManagementObject mo in moc)  
  225.                 {  
  226.                       
  227.                     st=mo["TotalPhysicalMemory"].ToString();  
  228.                       
  229.                 }  
  230.                 moc=null;  
  231.                 mc=null;  
  232.                 return st;  
  233.             }  
  234.             catch  
  235.             {  
  236.                 return "unknow";  
  237.             }  
  238.             finally  
  239.             {  
  240.             }  
  241.         }  
  242.         /// <summary>  
  243.         ///   
  244.         /// </summary>  
  245.         /// <returns></returns>  
  246.         string  GetComputerName()  
  247.         {  
  248.             try  
  249.             {                 
  250.                 return System.Environment.GetEnvironmentVariable("ComputerName");  
  251.             }  
  252.             catch  
  253.             {  
  254.                 return "unknow";  
  255.             }  
  256.             finally  
  257.             {  
  258.             }  
  259.         }  
  260.   
  261.   
  262.     }  
  263. }
相关文章
|
C#
C#实现远程机器管理
原文:C#实现远程机器管理      目前处于待离职状态,原先所有的工作都在进行交接,过程当中不乏有很多先前整理的和动手尝试实现的功能;我的主页中已经列出来一部分内容,有兴趣的可以前往看一看。           接下来的内容主要介绍另外一个工具,用于对远程主机进行远程控制、进程管理、服务管理以及WMI相关信息显示等;其中仍然存在部分问题还没有得到有效的解决,希望曾经参与过或者有关相关经验的前辈能够指导一下。
1030 0
|
Shell Linux C#
C#获取远程计算机硬件信息实例(支持linux和windows)
原文:C#获取远程计算机硬件信息实例(支持linux和windows) 网上关于WMI的资料很多,但一直没有比较全的属性介绍.今天通过反射把所有属性都给弄出来了.   关于WMI的代码就不多说了.
1820 0
|
测试技术 C#
c# 获取电脑硬件信息通用查询类[测试通过]
C#获取电脑硬件信息通用类[Computer]代码展示和分析,简介如下: 1.项目中添加System.Management引用。 2.添加类Computer,把下面代码全选,复制,粘贴。 3.使用方法new Computer().GetComputerName()。
1047 0
|
6月前
|
XML 前端开发 C#
C#编程实践:解析HTML文档并执行元素匹配
通过上述步骤,可以在C#中有效地解析HTML文档并执行元素匹配。HtmlAgilityPack提供了一个强大而灵活的工具集,可以处理各种HTML解析任务。
323 19
|
7月前
|
监控 算法 C#
C#与Halcon联合编程实现鼠标控制图像缩放、拖动及ROI绘制
C#与Halcon联合编程实现鼠标控制图像缩放、拖动及ROI绘制
1343 0
|
C# 开发者
C# 一分钟浅谈:Code Contracts 与契约编程
【10月更文挑战第26天】本文介绍了 C# 中的 Code Contracts,这是一个强大的工具,用于通过契约编程增强代码的健壮性和可维护性。文章从基本概念入手,详细讲解了前置条件、后置条件和对象不变量的使用方法,并通过具体代码示例进行了说明。同时,文章还探讨了常见的问题和易错点,如忘记启用静态检查、过度依赖契约和性能影响,并提供了相应的解决建议。希望读者能通过本文更好地理解和应用 Code Contracts。
350 3
|
存储 安全 编译器
学懂C#编程:属性(Property)的概念定义及使用详解
通过深入理解和使用C#的属性,可以编写更清晰、简洁和高效的代码,为开发高质量的应用程序奠定基础。
1167 12