[计算机] C# ManagementObjectSearcher

查看:442 |回复:0 | 2022-8-25 11:03:47

您需要 登录 才可以下载或查看,没有账号?注册

x
我们用到的主要类是ManagementObjectSearcher,该类在System.Management命名空间下。
有时候我们可以通过Environment获得一些简单的系统信息。
如:Environment.MachineName;获得计算机名。
Environment.UserName;获得操作系统登录用户名。
不过在这篇文章中主要讨论ManagementObjectSearcher获取计算机硬件及操作系统的信息。
  1. 用法步骤:
  2. 添加引用:System.Management
  3. 引入命名空间:using System.Management;
  4. 创建ManagementObjectSearcher对象
  5. anagementObjectSearcher searcher = new ManagementObjectSearcher("select * from " + Key);
  6. 其中的key见下面key列表:
  7. 通过searcher.Get()获得ManagementObjectCollection集合
  8. 遍历ManagementObjectCollection集合获得ManagementObject
  9. 通过managementObject[name]或ManagementObject.GetPropertyValue(name)获得想要的属性
  10. 若不知道这里的name该写什么可以遍历打印一下:
点击此处复制文本
  1. //获取CPU序列号
  2. public string GetCPUSerialNumber()
  3. {
  4.     try
  5.     {
  6.         ManagementObjectSearcher searcher = new ManagementObjectSearcher("Select * From Win32_Processor");
  7.         string sCPUSerialNumber = "";
  8.         foreach (ManagementObject mo in searcher.Get())
  9.         {
  10.             sCPUSerialNumber = mo["ProcessorId"].ToString().Trim();
  11.             break;
  12.         }
  13.         return sCPUSerialNumber;
  14.     }
  15.     catch
  16.     {
  17.         return "";
  18.     }
  19. }**
点击此处复制文本
  1. /获取主板序列号
  2. public string GetBIOSSerialNumber()
  3. {
  4.     try
  5.     {
  6.         ManagementObjectSearcher searcher = new ManagementObjectSearcher("Select * From Win32_BIOS");
  7.         string sBIOSSerialNumber = "";
  8.         foreach (ManagementObject mo in searcher.Get())
  9.         {
  10.             sBIOSSerialNumber = mo.GetPropertyValue("SerialNumber").ToString().Trim();
  11.             break;
  12.         }
  13.         return sBIOSSerialNumber;
  14.     }
  15.     catch
  16.     {
  17.         return "";
  18.     }
  19. }
点击此处复制文本
  1. //获取硬盘序列号
  2. public string GetHardDiskSerialNumber()
  3. {
  4.     try
  5.     {
  6.         ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMedia");
  7.         string sHardDiskSerialNumber = "";
  8.         foreach (ManagementObject mo in searcher.Get())
  9.         {
  10.             sHardDiskSerialNumber = mo["SerialNumber"].ToString().Trim();
  11.             break;
  12.         }
  13.         return sHardDiskSerialNumber;
  14.     }
  15.     catch
  16.     {
  17.         return "";
  18.     }
  19. }
点击此处复制文本
  1. //获取网卡地址
  2. public string GetNetCardMACAddress()
  3. {
  4.     try
  5.     {
  6.         ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_NetworkAdapter WHERE ((MACAddress Is Not NULL) AND (Manufacturer <> 'Microsoft'))");
  7.         string NetCardMACAddress = "";
  8.         foreach (ManagementObject mo in searcher.Get())
  9.         {
  10.             NetCardMACAddress = mo["MACAddress"].ToString().Trim();
  11.             break;
  12.         }
  13.         return NetCardMACAddress;
  14.     }
  15.     catch
  16.     {
  17.         return "";
  18.     }
  19. }
点击此处复制文本


2022-8-25 11:03:47  
 赞 赞 0

使用道具 登录

0个回答,把该问题分享到群,邀请大神一起回答。

CG 游戏行业专业问题

程序逻辑文章算法
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表