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相关信息显示等;其中仍然存在部分问题还没有得到有效的解决,希望曾经参与过或者有关相关经验的前辈能够指导一下。
929 0
|
Shell Linux C#
C#获取远程计算机硬件信息实例(支持linux和windows)
原文:C#获取远程计算机硬件信息实例(支持linux和windows) 网上关于WMI的资料很多,但一直没有比较全的属性介绍.今天通过反射把所有属性都给弄出来了.   关于WMI的代码就不多说了.
1645 0
|
测试技术 C#
c# 获取电脑硬件信息通用查询类[测试通过]
C#获取电脑硬件信息通用类[Computer]代码展示和分析,简介如下: 1.项目中添加System.Management引用。 2.添加类Computer,把下面代码全选,复制,粘贴。 3.使用方法new Computer().GetComputerName()。
933 0
|
29天前
|
开发框架 前端开发 .NET
C#编程与Web开发
【4月更文挑战第21天】本文探讨了C#在Web开发中的应用,包括使用ASP.NET框架、MVC模式、Web API和Entity Framework。C#作为.NET框架的主要语言,结合这些工具,能创建动态、高效的Web应用。实际案例涉及企业级应用、电子商务和社交媒体平台。尽管面临竞争和挑战,但C#在Web开发领域的前景将持续拓展。
|
29天前
|
SQL 开发框架 安全
C#编程与多线程处理
【4月更文挑战第21天】探索C#多线程处理,提升程序性能与响应性。了解C#中的Thread、Task类及Async/Await关键字,掌握线程同步与安全,实践并发计算、网络服务及UI优化。跟随未来发展趋势,利用C#打造高效应用。
|
29天前
|
存储 安全 网络安全
C#编程的安全性与加密技术
【4月更文挑战第21天】C#在.NET框架支持下,以其面向对象和高级特性成为安全软件开发的利器。本文探讨C#在安全加密领域的应用,包括使用System.Security.Cryptography库实现加密算法,利用SSL/TLS保障网络传输安全,进行身份验证,并强调编写安全代码的重要性。实际案例涵盖在线支付、企业应用和文件加密,展示了C#在应对安全挑战的同时,不断拓展其在该领域的潜力和未来前景。
|
29天前
|
人工智能 C# 开发者
C#编程中的图形界面设计
【4月更文挑战第21天】本文探讨了C#在GUI设计中的应用,介绍了Windows Forms、WPF和UWP等常用框架,强调了简洁界面、响应式设计和数据绑定等最佳实践。通过实际案例,展示了C#在企业应用、游戏开发和移动应用中的GUI实现。随着技术发展,C#在GUI设计的未来将趋向于跨平台、更丰富的组件和AI集成,为开发者创造更多可能性。