C#通过WMI获取硬件信息

有时候需要得到硬件信息绑定用户登录

代码如下:

  1  private string GetProcessSerialNumber()
  2         {
  3             try
  4             {
  5                 ManagementObjectCollection ProcessCollection = new ManagementObjectSearcher(
  6                       new System.Management.ManagementScope("\\\\localhost\\root\\cimv2"),
  7                       new System.Management.ObjectQuery("SELECT * FROM Win32_processor")
  8                       ).Get();
  9                 if (ProcessCollection != null && ProcessCollection.Count > 0)
 10                 {
 11                     StringBuilder sb = new StringBuilder();
 12                     foreach (ManagementObject mo in ProcessCollection)
 13                     {
 14                         sb.Append(mo["ProcessorId"]);
 15                     }
 16                     return sb.ToString();
 17                 }
 18                 else
 19                 {
 20                     return "";
 21                 }
 22             }
 23             catch (Exception)
 24             {
 25                 return "";
 26             }
 27         }
 28
 29         private string GetMotherBoardSerialNumber()
 30         {
 31             try
 32             {
 33                 ManagementObjectCollection ProcessCollection = new ManagementObjectSearcher(
 34                       new System.Management.ManagementScope("\\\\localhost\\root\\cimv2"),
 35                       new System.Management.ObjectQuery("SELECT * FROM Win32_bios")
 36                       ).Get();
 37                 if (ProcessCollection != null && ProcessCollection.Count > 0)
 38                 {
 39                     StringBuilder sb = new StringBuilder();
 40                     foreach (ManagementObject mo in ProcessCollection)
 41                     {
 42                         sb.Append(mo["SerialNumber"]);
 43                     }
 44                     return sb.ToString();
 45                 }
 46                 else
 47                 {
 48                     return "";
 49                 }
 50             }
 51             catch (Exception)
 52             {
 53                 return "";
 54             }
 55         }
 56
 57         private string GetHardDisk0SerialNumber()
 58         {
 59             try
 60             {
 61                 ManagementObjectCollection ProcessCollection = new ManagementObjectSearcher(
 62                       new System.Management.ManagementScope("\\\\localhost\\root\\cimv2"),
 63                       new System.Management.ObjectQuery("SELECT * FROM Win32_DiskDrive")
 64                       ).Get();
 65                 if (ProcessCollection != null && ProcessCollection.Count > 0)
 66                 {
 67                     StringBuilder sb = new StringBuilder();
 68                     foreach (ManagementObject mo in ProcessCollection)
 69                     {
 70                         if(mo["Name"].ToString().IndexOf("DRIVE0")!=-1)
 71                         sb.Append(mo["SerialNumber"]);
 72                     }
 73                     return sb.ToString();
 74                 }
 75                 else
 76                 {
 77                     return "";
 78                 }
 79             }
 80             catch (Exception)
 81             {
 82                 return "";
 83             }
 84         }
 85
 86         private string GetNetWorkMACSerialNumber()
 87         {
 88             try
 89             {
 90                 ManagementObjectCollection ProcessCollection = new ManagementObjectSearcher(
 91                       new System.Management.ManagementScope("\\\\localhost\\root\\cimv2"),
 92                       new System.Management.ObjectQuery("SELECT * FROM Win32_NetworkAdapterConfiguration")
 93                       ).Get();
 94                 if (ProcessCollection != null && ProcessCollection.Count > 0)
 95                 {
 96                     StringBuilder sb = new StringBuilder();
 97                     foreach (ManagementObject mo in ProcessCollection)
 98                     {
 99                         if (mo["IPEnabled"].ToString() == "True")
100                             sb.Append(mo["MacAddress"]);
101                     }
102                     return sb.ToString();
103                 }
104                 else
105                 {
106                     return "";
107                 }
108             }
109             catch (Exception)
110             {
111                 return "";
112             }
113         }
时间: 2024-11-03 01:55:15

C#通过WMI获取硬件信息的相关文章

WMI 获取硬件信息的封装函数与获取联想台式机的出厂编号方法

原文:WMI 获取硬件信息的封装函数与获取联想台式机的出厂编号方法 今天玩了一把WMI,查询了一下电脑的硬件信息,感觉很多代码都是可以提取出来的,就自己把那些公共部分提出出来,以后如果要获取 某部分的硬件信息就不用写一个一个的函数,比如获取MAC地址就写一个获取MAC地址的函数,获取CPU 信息就写一个获取CPU信息的 函数,太麻烦了 如下是函数代码: 1 private static string identifier(string wmiClass, string wmiProperty,

dmidecode命令详解(获取硬件信息)

一.dmidecode简介 dmidecode允许你在Linux系统下获取有关硬件方面的信息.dmidecode遵循SMBIOS/DMI标准,其输出的信息包括BIOS.系统.主板.处理器.内存.缓存等等. DMI(Desktop Management Interface,DMI)就是帮助收集电脑系统信息的管理系统,DMI信息的收集必须在严格遵照SMBIOS规范的前提下进行.SMBIOS(System Management BIOS)是主板或系统制造者以标准格式显示产品管理信息所需遵循的统一规范.

Web网站中利用JavaScript中ActiveXObject对象获取硬件信息(显示器数量、分辨率)从而进行单双屏跳转

前言:最近这两天工作上,要实现一个功能,在好友阿聪的帮助下,算是比较好的解决了这个需求. B/S的Web网站,需要实现点击按钮时,根据客户端连接的显示屏(监视器)数量进行,单双屏跳转显示新页面. 由于是Web网站,项目是要发布在服务端上,通过后台去读硬件信息,也是读到的是服务器的硬件信息. 故考虑用JS中的ActiveXObject对象,读取到硬件的显示器(监视器)信息,比如数量.分辨率. 此处使用ActiveXObject对象,由于项目限制用的是IE9,打开窗口用的是window.open()

如何通过C#获取硬件信息。

在Windows下有个叫wmi的东西可以获取.微软还为此做了个wmi代码生成小工具. 但是这个东西着实不好用.获取到的温度都是不会刷新的.我推荐使用Open Hardware Monitor 这个开源的工具. 当然这里我们要用到的只是这个工具的静态库和配置文件就可以了. 可以研究下代码获取到硬件上传感器的一些信息. 这里我的代码是C#版的.只提供思路,不提供代码. 小demo演示,这里获取到了cpu温度和硬盘温度.

使用dmidecode在Linux下获取硬件信息

dmidecode命令可以让你在Linux系统下获取有关硬件方面的信息.dmidecode的作用是将DMI数据库中的信息解码,以可读的文本方式显示.由于DMI信息可以人为修改,因此里面的信息不一定是系统准确的信息.dmidecode遵循SMBIOS/DMI标准,其输出的信息包括BIOS.系统.主板.处理器.内存.缓存等等. DMI(Desktop Management Interface,DMI)就是帮助收集电脑系统信息的管理系统,DMI信息的收集必须在严格遵照SMBIOS规范的前提下进行.SM

获取硬件信息

得到显示器分辨率Dim X As Short = System.Windows.Forms.Screen.PrimaryScreen.Bounds.WidthDim Y As Short = System.Windows.Forms.Screen.PrimaryScreen.Bounds.HeightMsgBox("您的显示器分辨率是:" & X & " X " & Y) 得到特殊文件夹的路径'"Desktop"桌面文件夹

C#获取硬件信息

1. 引用命名空间 using System.Runtime.InteropServices; using System.Management; 2. 取机器名 public string GetHostName() { return System.Net.Dns.GetHostName(); } 3. 取CPU编号 public String GetCpuID() { try { ManagementClass mc = new ManagementClass("Win32_Processor

autoit使用WMIC获取硬件信息

效果图: 直接上源码了 #cs ---------------------------------------------------------------------------- AutoIt Version: 3.3.12.0 Author: Qiulp Script Function: Template AutoIt script. #ce -------------------------------------------------------------------------

Window下获取硬件信息(CPU, 硬盘,网卡等)

一.头文件如下: #include <Windows.h> #include <string> #include <iostream> #include <winnt.h> #include <tchar.h> #include <IPHlpApi.h> #pragma comment(lib,"ws2_32.lib") #pragma comment(lib,"Advapi32.lib") #