C#获取当前主机硬件信息
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 7 8 using System.Net; 9 using System.Management; //在项目-》添加引用....里面引用System.Management 10 using System.Runtime.InteropServices; 11 12 13 namespace FileSplit 14 { 15 //此类用于获取当前主机的相关信息 16 public class MachineInfo 17 { 18 //用法示例 19 private string example() 20 { 21 string Info = ""; 22 MachineInfo info = MachineInfo.I(); //获取主机的对象信息 23 24 25 Info = "\r\n主机名:" + Dns.GetHostName(); //获取主机名称 26 Info += "\r\n系统类型:" + info.GetSystemType(); 27 Info += "\r\n物理内存:" + info.GetPhysicalMemory(); 28 29 30 Info += "\r\n\r\n本地IP:"; 31 string[] LocalIp = info.GetLocalIpAddress(); 32 foreach (string ip in LocalIp) Info += "\r\n" + ip; 33 34 35 Info += "\r\n\r\n外网IP:"; 36 string[] ExternalIp = info.GetExtenalIpAddress(); 37 foreach (string ip in ExternalIp) Info += "\r\n" + ip; 38 39 40 Info += "\r\n\r\nMAC:"; 41 Info += "\r\n" + info.GetNetCardMACAddress(); 42 //Info += "\r\n" + info.GetMacAddress(LocalIp[0]); 43 44 45 Info += "\r\n"; 46 Info += "\r\nCPU序列号:" + info.GetCPUSerialNumber(); 47 //Info += "\r\nCPU编号:" + info.GetCPUID(); 48 //Info += "\r\nCPU版本信息:" + info.GetCPUVersion(); 49 //Info += "\r\nCPU名称信息:" + info.GetCPUName(); 50 //Info += "\r\nCPU制造厂商:" + info.GetCPUManufacturer(); 51 //Info += "\r\n主板制造厂商:" + info.GetBoardManufacturer(); 52 53 54 //Info += "\r\n主板序列号:" + info.GetBIOSSerialNumber(); 55 //Info += "\r\n硬盘序列号:" + info.GetHardDiskSerialNumber(); 56 //Info += "\r\n显卡PNPDeviceID:\r\n" + info.GetVideoPNPID(); 57 //Info += "\r\n声卡PNPDeviceID:\r\n" + info.GetSoundPNPID(); 58 59 60 return Info; 61 } 62 63 64 65 66 static MachineInfo Instance; 67 68 69 /// <summary> 70 /// 获取当前类对象的一个实例 71 /// </summary> 72 public static MachineInfo I() 73 { 74 if (Instance == null) Instance = new MachineInfo(); 75 return Instance; 76 } 77 78 /// <summary> 79 /// 获取本地ip地址,多个ip 80 /// </summary> 81 public String[] GetLocalIpAddress() 82 { 83 string hostName = Dns.GetHostName(); //获取主机名称 84 IPAddress[] addresses = Dns.GetHostAddresses(hostName); //解析主机IP地址 85 86 87 string[] IP = new string[addresses.Length]; //转换为字符串形式 88 for (int i = 0; i < addresses.Length; i++) IP[i] = addresses[i].ToString(); 89 90 91 return IP; 92 } 93 94 95 96 97 //从网站"http://1111.ip138.com/ic.asp",获取本机外网ip地址信息串 98 //"<html>\r\n<head>\r\n<meta http-equiv=\"content-type\" content=\"text/html; charset=gb2312\">\r\n<title> 99 //您的IP地址 </title>\r\n</head>\r\n<body style=\"margin:0px\"><center>您的IP是:[218.104.71.178] 来自:安徽省合肥市 联通</center></body></html>" 100 101 102 /// <summary> 103 /// 获取外网ip地址 104 /// </summary> 105 public string[] GetExtenalIpAddress() 106 { 107 string[] IP = new string[] { "未获取到外网ip", "" }; 108 109 110 string address = "http://1111.ip138.com/ic.asp"; 111 string str = GetWebStr(address); 112 113 114 try 115 { 116 //提取外网ip数据 [218.104.71.178] 117 int i1 = str.IndexOf("[") + 1, i2 = str.IndexOf("]"); 118 IP[0] = str.Substring(i1, i2 - i1); 119 120 121 //提取网址说明信息 "来自:安徽省合肥市 联通" 122 i1 = i2 + 2; i2 = str.IndexOf("<", i1); 123 IP[1] = str.Substring(i1, i2 - i1); 124 } 125 catch (Exception) { } 126 127 128 return IP; 129 } 130 131 132 /// <summary> 133 /// 获取网址address的返回的文本串数据 134 /// </summary> 135 public string GetWebStr(string address) 136 { 137 string str = ""; 138 try 139 { 140 //从网址中获取本机ip数据 141 System.Net.WebClient client = new System.Net.WebClient(); 142 client.Encoding = System.Text.Encoding.Default; 143 str = client.DownloadString(address); 144 client.Dispose(); 145 } 146 catch (Exception) { } 147 148 149 return str; 150 } 151 152 153 /// <summary> 154 /// 获取本机的MAC; //在项目-》添加引用....里面引用System.Management 155 /// </summary> 156 public string GetLocalMac() 157 { 158 string mac = null; 159 ManagementObjectSearcher query = new ManagementObjectSearcher("SELECT * FROM Win32_NetworkAdapterConfiguration"); 160 ManagementObjectCollection queryCollection = query.Get(); 161 foreach (ManagementObject mo in queryCollection) 162 { 163 if (mo["IPEnabled"].ToString() == "True") 164 mac = mo["MacAddress"].ToString(); 165 } 166 return (mac); 167 } 168 169 170 //只能获取同网段的远程主机MAC地址. 因为在标准网络协议下,ARP包是不能跨网段传输的,故想通过ARP协议是无法查询跨网段设备MAC地址的。 171 [DllImport("Iphlpapi.dll")] 172 private static extern int SendARP(Int32 dest, Int32 host, ref Int64 mac, ref Int32 length); 173 [DllImport("Ws2_32.dll")] 174 private static extern Int32 inet_addr(string ip); 175 /// <summary> 176 /// 获取ip对应的MAC地址 177 /// </summary> 178 public string GetMacAddress(string ip) 179 { 180 Int32 ldest = inet_addr(ip); //目的ip 181 Int32 lhost = inet_addr("127.0.0.1"); //本地ip 182 183 184 try 185 { 186 Int64 macinfo = new Int64(); 187 Int32 len = 6; 188 int res = SendARP(ldest, 0, ref macinfo, ref len); //使用系统API接口发送ARP请求,解析ip对应的Mac地址 189 return Convert.ToString(macinfo, 16); 190 } 191 catch (Exception err) 192 { 193 Console.WriteLine("Error:{0}", err.Message); 194 } 195 return "获取Mac地址失败"; 196 } 197 198 199 /// <summary> 200 /// 获取主板序列号 201 /// </summary> 202 /// <returns></returns> 203 public string GetBIOSSerialNumber() 204 { 205 try 206 { 207 ManagementObjectSearcher searcher = new ManagementObjectSearcher("Select * From Win32_BIOS"); 208 string sBIOSSerialNumber = ""; 209 foreach (ManagementObject mo in searcher.Get()) 210 { 211 sBIOSSerialNumber = mo["SerialNumber"].ToString().Trim(); 212 } 213 return sBIOSSerialNumber; 214 } 215 catch 216 { 217 return ""; 218 } 219 } 220 221 222 /// <summary> 223 /// 获取CPU序列号 224 /// </summary> 225 /// <returns></returns> 226 public string GetCPUSerialNumber() 227 { 228 try 229 { 230 ManagementObjectSearcher searcher = new ManagementObjectSearcher("Select * From Win32_Processor"); 231 string sCPUSerialNumber = ""; 232 foreach (ManagementObject mo in searcher.Get()) 233 { 234 sCPUSerialNumber = mo["ProcessorId"].ToString().Trim(); 235 } 236 return sCPUSerialNumber; 237 } 238 catch 239 { 240 return ""; 241 } 242 } 243 //获取硬盘序列号 244 public string GetHardDiskSerialNumber() 245 { 246 try 247 { 248 ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMedia"); 249 string sHardDiskSerialNumber = ""; 250 foreach (ManagementObject mo in searcher.Get()) 251 { 252 sHardDiskSerialNumber = mo["SerialNumber"].ToString().Trim(); 253 break; 254 } 255 return sHardDiskSerialNumber; 256 } 257 catch 258 { 259 return ""; 260 } 261 } 262 263 264 //获取网卡地址 265 public string GetNetCardMACAddress() 266 { 267 try 268 { 269 ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_NetworkAdapter WHERE ((MACAddress Is Not NULL) AND (Manufacturer <> 'Microsoft'))"); 270 string NetCardMACAddress = ""; 271 foreach (ManagementObject mo in searcher.Get()) 272 { 273 NetCardMACAddress = mo["MACAddress"].ToString().Trim(); 274 } 275 return NetCardMACAddress; 276 } 277 catch 278 { 279 return ""; 280 } 281 } 282 283 284 285 286 /// <summary> 287 /// 获得CPU编号 288 /// </summary> 289 public string GetCPUID() 290 { 291 string cpuid = ""; 292 ManagementClass mc = new ManagementClass("Win32_Processor"); 293 ManagementObjectCollection moc = mc.GetInstances(); 294 foreach (ManagementObject mo in moc) 295 { 296 cpuid = mo.Properties["ProcessorId"].Value.ToString(); 297 } 298 return cpuid; 299 } 300 301 302 /// <summary> 303 /// 获取硬盘序列号 304 /// </summary> 305 public string GetDiskSerialNumber() 306 { 307 //这种模式在插入一个U盘后可能会有不同的结果,如插入我的手机时 308 String HDid = ""; 309 ManagementClass mc = new ManagementClass("Win32_DiskDrive"); 310 ManagementObjectCollection moc = mc.GetInstances(); 311 foreach (ManagementObject mo in moc) 312 { 313 HDid = (string)mo.Properties["Model"].Value;//SerialNumber 314 break;//这名话解决有多个物理盘时产生的问题,只取第一个物理硬盘 315 } 316 return HDid; 317 318 319 /*ManagementClass mc = new ManagementClass("Win32_PhysicalMedia"); 320 ManagementObjectCollection moc = mc.GetInstances(); 321 string str = ""; 322 foreach (ManagementObject mo in moc) 323 { 324 str = mo.Properties["SerialNumber"].Value.ToString(); 325 break; 326 } 327 return str;*/ 328 } 329 330 331 /// <summary> 332 /// 获取网卡硬件地址 333 /// </summary> 334 public string GetMacAddress() 335 { 336 string mac = ""; 337 ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration"); 338 ManagementObjectCollection moc = mc.GetInstances(); 339 foreach (ManagementObject mo in moc) 340 { 341 if ((bool)mo["IPEnabled"] == true) 342 { 343 mac = mo["MacAddress"].ToString(); 344 break; 345 } 346 } 347 return mac; 348 } 349 350 351 /// <summary> 352 /// 获取IP地址 353 /// </summary> 354 public string GetIPAddress() 355 { 356 string st = ""; 357 ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration"); 358 ManagementObjectCollection moc = mc.GetInstances(); 359 foreach (ManagementObject mo in moc) 360 { 361 if ((bool)mo["IPEnabled"] == true) 362 { 363 //st=mo["IpAddress"].ToString(); 364 System.Array ar; 365 ar = (System.Array)(mo.Properties["IpAddress"].Value); 366 st = ar.GetValue(0).ToString(); 367 break; 368 } 369 } 370 return st; 371 } 372 373 374 /// <summary> 375 /// 操作系统的登录用户名 376 /// </summary> 377 public string GetUserName() 378 { 379 return Environment.UserName; 380 } 381 382 383 384 385 /// <summary> 386 /// 获取计算机名 387 /// </summary> 388 public string GetComputerName() 389 { 390 return Environment.MachineName; 391 } 392 393 394 /// <summary> 395 /// 操作系统类型 396 /// </summary> 397 public string GetSystemType() 398 { 399 string st = ""; 400 ManagementClass mc = new ManagementClass("Win32_ComputerSystem"); 401 ManagementObjectCollection moc = mc.GetInstances(); 402 foreach (ManagementObject mo in moc) 403 { 404 st = mo["SystemType"].ToString(); 405 } 406 return st; 407 } 408 409 410 /// <summary> 411 /// 物理内存 412 /// </summary> 413 public string GetPhysicalMemory() 414 { 415 string st = ""; 416 ManagementClass mc = new ManagementClass("Win32_ComputerSystem"); 417 ManagementObjectCollection moc = mc.GetInstances(); 418 foreach (ManagementObject mo in moc) 419 { 420 st = mo["TotalPhysicalMemory"].ToString(); 421 } 422 return st; 423 } 424 425 426 /// <summary> 427 /// 显卡PNPDeviceID 428 /// </summary> 429 public string GetVideoPNPID() 430 { 431 string st = ""; 432 ManagementObjectSearcher mos = new ManagementObjectSearcher("Select * from Win32_VideoController"); 433 foreach (ManagementObject mo in mos.Get()) 434 { 435 st = mo["PNPDeviceID"].ToString(); 436 } 437 return st; 438 } 439 440 441 /// <summary> 442 /// 声卡PNPDeviceID 443 /// </summary> 444 public string GetSoundPNPID() 445 { 446 string st = ""; 447 ManagementObjectSearcher mos = new ManagementObjectSearcher("Select * from Win32_SoundDevice"); 448 foreach (ManagementObject mo in mos.Get()) 449 { 450 st = mo["PNPDeviceID"].ToString(); 451 } 452 return st; 453 } 454 455 456 /// <summary> 457 /// CPU版本信息 458 /// </summary> 459 public string GetCPUVersion() 460 { 461 string st = ""; 462 ManagementObjectSearcher mos = new ManagementObjectSearcher("Select * from Win32_Processor"); 463 foreach (ManagementObject mo in mos.Get()) 464 { 465 st = mo["Version"].ToString(); 466 } 467 return st; 468 } 469 470 471 /// <summary> 472 /// CPU名称信息 473 /// </summary> 474 public string GetCPUName() 475 { 476 string st = ""; 477 ManagementObjectSearcher driveID = new ManagementObjectSearcher("Select * from Win32_Processor"); 478 foreach (ManagementObject mo in driveID.Get()) 479 { 480 st = mo["Name"].ToString(); 481 } 482 return st; 483 } 484 485 486 /// <summary> 487 /// CPU制造厂商 488 /// </summary> 489 public string GetCPUManufacturer() 490 { 491 string st = ""; 492 ManagementObjectSearcher mos = new ManagementObjectSearcher("Select * from Win32_Processor"); 493 foreach (ManagementObject mo in mos.Get()) 494 { 495 st = mo["Manufacturer"].ToString(); 496 } 497 return st; 498 } 499 500 501 /// <summary> 502 /// 主板制造厂商 503 /// </summary> 504 public string GetBoardManufacturer() 505 { 506 SelectQuery query = new SelectQuery("Select * from Win32_BaseBoard"); 507 ManagementObjectSearcher mos = new ManagementObjectSearcher(query); 508 ManagementObjectCollection.ManagementObjectEnumerator data = mos.Get().GetEnumerator(); 509 data.MoveNext(); 510 ManagementBaseObject board = data.Current; 511 return board.GetPropertyValue("Manufacturer").ToString(); 512 } 513 514 515 /// <summary> 516 /// 主板编号 517 /// </summary> 518 public string GetBoardID() 519 { 520 string st = ""; 521 ManagementObjectSearcher mos = new ManagementObjectSearcher("Select * from Win32_BaseBoard"); 522 foreach (ManagementObject mo in mos.Get()) 523 { 524 st = mo["SerialNumber"].ToString(); 525 } 526 return st; 527 } 528 529 530 /// <summary> 531 /// 主板型号 532 /// </summary> 533 public string GetBoardType() 534 { 535 string st = ""; 536 ManagementObjectSearcher mos = new ManagementObjectSearcher("Select * from Win32_BaseBoard"); 537 foreach (ManagementObject mo in mos.Get()) 538 { 539 st = mo["Product"].ToString(); 540 } 541 return st; 542 } 543 } 544 } 545 546 547 /* 548 * 在很多情况下,你可能都需要得到微机的硬件信息。比如:你想给你的软件加锁,不让别人随便访问。 549 550 551 最有效的办法是获取CPU的序列号,然后让你的软件只能运行在有这样的CPU序列号的机器上。众所周知,CPU序列号是唯一的!因此,这样就可以为你的软件加锁了。powered by 25175.net 552 553 554 另外一个需要硬盘信息的例子是:硬盘有几个分区,每个分区各有多少剩余空间。当你正在做一个多媒体应用程序的时候,你可能也需要获得有关声卡、显卡的硬件信息。 555 556 557 558 559 560 561 本应用程序另一个精彩的应用是:获取有关系统内存的信息,如内存地址,内存设备等等。 562 563 564 首先,你必须知道这个应用程序的功能是使用System.Management这个类得到的。因此,你需要加上下面的这句话: 565 566 567 using System.Management; 568 569 570 571 572 为了获取硬件信息,你还需要创建一个ManagementObjectSearcher 对象。 573 574 575 ManagementObjectSearcher searcher = new ManagementObjectSearcher("select * from " + Key); 576 577 578 // 硬件 579 Win32_Processor, // CPU 处理器 580 Win32_PhysicalMemory, // 物理内存条 581 Win32_Keyboard, // 键盘 582 Win32_PointingDevice, // 点输入设备,包括鼠标。 583 Win32_FloppyDrive, // 软盘驱动器 584 Win32_DiskDrive, // 硬盘驱动器 585 Win32_CDROMDrive, // 光盘驱动器 586 Win32_BaseBoard, // 主板 587 Win32_BIOS, // BIOS 芯片 588 Win32_ParallelPort, // 并口 589 Win32_SerialPort, // 串口 590 Win32_SerialPortConfiguration, // 串口配置 591 Win32_SoundDevice, // 多媒体设置,一般指声卡。 592 Win32_SystemSlot, // 主板插槽 (ISA & PCI & AGP) 593 Win32_USBController, // USB 控制器 594 Win32_NetworkAdapter, // 网络适配器 595 Win32_NetworkAdapterConfiguration, // 网络适配器设置 596 Win32_Printer, // 打印机 597 Win32_PrinterConfiguration, // 打印机设置 598 Win32_PrintJob, // 打印机任务 599 Win32_TCPIPPrinterPort, // 打印机端口 600 Win32_POTSModem, // MODEM 601 Win32_POTSModemToSerialPort, // MODEM 端口 602 Win32_DesktopMonitor, // 显示器 603 Win32_DisplayConfiguration, // 显卡 604 Win32_DisplayControllerConfiguration, // 显卡设置 605 Win32_VideoController, // 显卡细节。 606 Win32_VideoSettings, // 显卡支持的显示模式。 607 608 609 // 操作系统 610 Win32_TimeZone, // 时区 611 Win32_SystemDriver, // 驱动程序 612 Win32_DiskPartition, // 磁盘分区 613 Win32_LogicalDisk, // 逻辑磁盘 614 Win32_LogicalDiskToPartition, // 逻辑磁盘所在分区及始末位置。 615 Win32_LogicalMemoryConfiguration, // 逻辑内存配置 616 Win32_PageFile, // 系统页文件信息 617 Win32_PageFileSetting, // 页文件设置 618 Win32_BootConfiguration, // 系统启动配置 619 Win32_ComputerSystem, // 计算机信息简要 620 Win32_OperatingSystem, // 操作系统信息 621 Win32_StartupCommand, // 系统自动启动程序 622 Win32_Service, // 系统安装的服务 623 Win32_Group, // 系统管理组 624 Win32_GroupUser, // 系统组帐号 625 Win32_UserAccount, // 用户帐号 626 Win32_Process, // 系统进程 627 Win32_Thread, // 系统线程 628 Win32_Share, // 共享 629 Win32_NetworkClient, // 已安装的网络客户端 630 Win32_NetworkProtocol, // 已安装的网络协议 631 632 633 634 635 636 637 上面代码的Key是一个将被对应正确的数据填入的值。例如,获取CPU的信息,就需要把Key值设成Win32_Processor。所有Key可能的值,列举如下: 638 639 640 Win32_1394Controller 641 Win32_1394ControllerDevice 642 Win32_Account 643 Win32_AccountSID 644 Win32_ACE 645 Win32_ActionCheck 646 Win32_AllocatedResource 647 Win32_ApplicationCommandLine 648 Win32_ApplicationService 649 Win32_AssociatedBattery 650 Win32_AssociatedProcessorMemory 651 Win32_BaseBoard 652 Win32_BaseService 653 Win32_Battery 654 Win32_Binary 655 Win32_BindImageAction 656 Win32_BIOS 657 Win32_BootConfiguration 658 Win32_Bus 659 Win32_CacheMemory 660 Win32_CDROMDrive 661 Win32_CheckCheck 662 Win32_CIMLogicalDeviceCIMDataFile 663 Win32_ClassicCOMApplicationClasses 664 Win32_ClassicCOMClass 665 Win32_ClassicCOMClassSetting 666 Win32_ClassicCOMClassSettings 667 Win32_ClassInfoAction 668 Win32_ClientApplicationSetting 669 Win32_CodecFile 670 Win32_COMApplication 671 Win32_COMApplicationClasses 672 Win32_COMApplicationSettings 673 Win32_COMClass 674 Win32_ComClassAutoEmulator 675 Win32_ComClassEmulator 676 Win32_CommandLineAccess 677 Win32_ComponentCategory 678 Win32_ComputerSystem 679 Win32_ComputerSystemProcessor 680 Win32_ComputerSystemProduct 681 Win32_COMSetting 682 Win32_Condition 683 Win32_CreateFolderAction 684 Win32_CurrentProbe 685 Win32_DCOMApplication 686 Win32_DCOMApplicationAccessAllowedSetting 687 Win32_DCOMApplicationLaunchAllowedSetting 688 Win32_DCOMApplicationSetting 689 Win32_DependentService 690 Win32_Desktop 691 Win32_DesktopMonitor 692 Win32_DeviceBus 693 Win32_DeviceMemoryAddress 694 Win32_DeviceSettings 695 Win32_Directory 696 Win32_DirectorySpecification 697 Win32_DiskDrive 698 Win32_DiskDriveToDiskPartition 699 Win32_DiskPartition 700 Win32_DisplayConfiguration 701 Win32_DisplayControllerConfiguration 702 Win32_DMAChannel 703 Win32_DriverVXD 704 Win32_DuplicateFileAction 705 Win32_Environment 706 Win32_EnvironmentSpecification 707 Win32_ExtensionInfoAction 708 Win32_Fan 709 Win32_FileSpecification 710 Win32_FloppyController 711 Win32_FloppyDrive 712 Win32_FontInfoAction 713 Win32_Group 714 Win32_GroupUser 715 Win32_HeatPipe 716 Win32_IDEController 717 Win32_IDEControllerDevice 718 Win32_ImplementedCategory 719 Win32_InfraredDevice 720 Win32_IniFileSpecification 721 Win32_InstalledSoftwareElement 722 Win32_IRQResource 723 Win32_Keyboard 724 Win32_LaunchCondition 725 Win32_LoadOrderGroup 726 Win32_LoadOrderGroupServiceDependencies 727 Win32_LoadOrderGroupServiceMembers 728 Win32_LogicalDisk 729 Win32_LogicalDiskRootDirectory 730 Win32_LogicalDiskToPartition 731 Win32_LogicalFileAccess 732 Win32_LogicalFileAuditing 733 Win32_LogicalFileGroup 734 Win32_LogicalFileOwner 735 Win32_LogicalFileSecuritySetting 736 Win32_LogicalMemoryConfiguration 737 Win32_LogicalProgramGroup 738 Win32_LogicalProgramGroupDirectory 739 Win32_LogicalProgramGroupItem 740 Win32_LogicalProgramGroupItemDataFile 741 Win32_LogicalShareAccess 742 Win32_LogicalShareAuditing 743 Win32_LogicalShareSecuritySetting 744 Win32_ManagedSystemElementResource 745 Win32_MemoryArray 746 Win32_MemoryArrayLocation 747 Win32_MemoryDevice 748 Win32_MemoryDeviceArray 749 Win32_MemoryDeviceLocation 750 Win32_MethodParameterClass 751 Win32_MIMEInfoAction 752 Win32_MotherboardDevice 753 Win32_MoveFileAction 754 Win32_MSIResource 755 Win32_networkAdapter 756 Win32_networkAdapterConfiguration 757 Win32_networkAdapterSetting 758 Win32_networkClient 759 Win32_networkConnection 760 Win32_networkLoginProfile 761 Win32_networkProtocol 762 Win32_NTEventlogFile 763 Win32_NTLogEvent 764 Win32_NTLogEventComputer 765 Win32_NTLogEventLog 766 Win32_NTLogEventUser 767 Win32_ODBCAttribute 768 Win32_ODBCDataSourceAttribute 769 Win32_ODBCDataSourceSpecification 770 Win32_ODBCDriverAttribute 771 Win32_ODBCDriverSoftwareElement 772 Win32_ODBCDriverSpecification 773 Win32_ODBCSourceAttribute 774 Win32_ODBCTranslatorSpecification 775 Win32_OnBoardDevice 776 Win32_OperatingSystem 777 Win32_OperatingSystemQFE 778 Win32_OSRecoveryConfiguration 779 Win32_PageFile 780 Win32_PageFileElementSetting 781 Win32_PageFileSetting 782 Win32_PageFileUsage 783 Win32_ParallelPort 784 Win32_Patch 785 Win32_PatchFile 786 Win32_PatchPackage 787 Win32_PCMCIAController 788 Win32_Perf 789 Win32_PerfRawData 790 Win32_PerfRawData_ASP_ActiveServerPages 791 Win32_PerfRawData_ASPnet_114322_ASPnetAppsv114322 792 Win32_PerfRawData_ASPnet_114322_ASPnetv114322 793 Win32_PerfRawData_ASPnet_ASPnet 794 Win32_PerfRawData_ASPnet_ASPnetApplications 795 Win32_PerfRawData_IAS_IASAccountingClients 796 Win32_PerfRawData_IAS_IASAccountingServer 797 Win32_PerfRawData_IAS_IASAuthenticationClients 798 Win32_PerfRawData_IAS_IASAuthenticationServer 799 Win32_PerfRawData_InetInfo_InternetInformationServicesGlobal 800 Win32_PerfRawData_MSDTC_DistributedTransactionCoordinator 801 Win32_PerfRawData_MSFTPSVC_FTPService 802 Win32_PerfRawData_MSSQLSERVER_SQLServerAccessMethods 803 Win32_PerfRawData_MSSQLSERVER_SQLServerBackupDevice 804 Win32_PerfRawData_MSSQLSERVER_SQLServerBufferManager 805 Win32_PerfRawData_MSSQLSERVER_SQLServerBufferPartition 806 Win32_PerfRawData_MSSQLSERVER_SQLServerCacheManager 807 Win32_PerfRawData_MSSQLSERVER_SQLServerDatabases 808 Win32_PerfRawData_MSSQLSERVER_SQLServerGeneralStatistics 809 Win32_PerfRawData_MSSQLSERVER_SQLServerLatches 810 Win32_PerfRawData_MSSQLSERVER_SQLServerLocks 811 Win32_PerfRawData_MSSQLSERVER_SQLServerMemoryManager 812 Win32_PerfRawData_MSSQLSERVER_SQLServerReplicationAgents 813 Win32_PerfRawData_MSSQLSERVER_SQLServerReplicationDist 814 Win32_PerfRawData_MSSQLSERVER_SQLServerReplicationLogreader 815 Win32_PerfRawData_MSSQLSERVER_SQLServerReplicationMerge 816 Win32_PerfRawData_MSSQLSERVER_SQLServerReplicationSnapshot 817 Win32_PerfRawData_MSSQLSERVER_SQLServerSQLStatistics 818 Win32_PerfRawData_MSSQLSERVER_SQLServerUserSettable 819 Win32_PerfRawData_netFramework_netCLRExceptions 820 Win32_PerfRawData_netFramework_netCLRInterop 821 Win32_PerfRawData_netFramework_netCLRJit 822 Win32_PerfRawData_netFramework_netCLRLoading 823 Win32_PerfRawData_netFramework_netCLRLocksAndThreads 824 Win32_PerfRawData_netFramework_netCLRMemory 825 Win32_PerfRawData_netFramework_netCLRRemoting 826 Win32_PerfRawData_netFramework_netCLRSecurity 827 Win32_PerfRawData_Outlook_Outlook 828 Win32_PerfRawData_PerfDisk_PhysicalDisk 829 Win32_PerfRawData_Perfnet_Browser 830 Win32_PerfRawData_Perfnet_Redirector 831 Win32_PerfRawData_Perfnet_Server 832 Win32_PerfRawData_Perfnet_ServerWorkQueues 833 Win32_PerfRawData_PerfOS_Cache 834 Win32_PerfRawData_PerfOS_Memory 835 Win32_PerfRawData_PerfOS_Objects 836 Win32_PerfRawData_PerfOS_PagingFile 837 Win32_PerfRawData_PerfOS_Processor 838 Win32_PerfRawData_PerfOS_System 839 Win32_PerfRawData_PerfProc_FullImage_Costly 840 Win32_PerfRawData_PerfProc_Image_Costly 841 Win32_PerfRawData_PerfProc_JobObject 842 Win32_PerfRawData_PerfProc_JobObjectDetails 843 Win32_PerfRawData_PerfProc_Process 844 Win32_PerfRawData_PerfProc_ProcessAddressSpace_Costly 845 Win32_PerfRawData_PerfProc_Thread 846 Win32_PerfRawData_PerfProc_ThreadDetails_Costly 847 Win32_PerfRawData_RemoteAccess_RASPort 848 Win32_PerfRawData_RemoteAccess_RASTotal 849 Win32_PerfRawData_RSVP_ACSPerRSVPService 850 Win32_PerfRawData_Spooler_PrintQueue 851 Win32_PerfRawData_TapiSrv_Telephony 852 Win32_PerfRawData_Tcpip_ICMP 853 Win32_PerfRawData_Tcpip_IP 854 Win32_PerfRawData_Tcpip_NBTConnection 855 Win32_PerfRawData_Tcpip_networkInterface 856 Win32_PerfRawData_Tcpip_TCP 857 Win32_PerfRawData_Tcpip_UDP 858 Win32_PerfRawData_W3SVC_WebService 859 Win32_PhysicalMedia 860 Win32_PhysicalMemory 861 Win32_PhysicalMemoryArray 862 Win32_PhysicalMemoryLocation 863 Win32_PNPAllocatedResource 864 Win32_PnPDevice 865 Win32_PnPEntity 866 Win32_PointingDevice 867 Win32_PortableBattery 868 Win32_PortConnector 869 Win32_PortResource 870 Win32_POTSModem 871 Win32_POTSModemToSerialPort 872 Win32_PowerManagementEvent 873 Win32_Printer 874 Win32_PrinterConfiguration 875 Win32_PrinterController 876 Win32_PrinterDriverDll 877 Win32_PrinterSetting 878 Win32_PrinterShare 879 Win32_PrintJob 880 Win32_PrivilegesStatus 881 Win32_Process 882 Win32_Processor 883 Win32_ProcessStartup 884 Win32_Product 885 Win32_ProductCheck 886 Win32_ProductResource 887 Win32_ProductSoftwareFeatures 888 Win32_ProgIDSpecification 889 Win32_ProgramGroup 890 Win32_ProgramGroupContents 891 Win32_ProgramGroupOrItem 892 Win32_Property 893 Win32_ProtocolBinding 894 Win32_PublishComponentAction 895 Win32_QuickFixEngineering 896 Win32_Refrigeration 897 Win32_Registry 898 Win32_RegistryAction 899 Win32_RemoveFileAction 900 Win32_RemoveIniAction 901 Win32_ReserveCost 902 Win32_ScheduledJob 903 Win32_SCSIController 904 Win32_SCSIControllerDevice 905 Win32_SecurityDescriptor 906 Win32_SecuritySetting 907 Win32_SecuritySettingAccess 908 Win32_SecuritySettingAuditing 909 Win32_SecuritySettingGroup 910 Win32_SecuritySettingOfLogicalFile 911 Win32_SecuritySettingOfLogicalShare 912 Win32_SecuritySettingOfObject 913 Win32_SecuritySettingOwner 914 Win32_SelfRegModuleAction 915 Win32_SerialPort 916 Win32_SerialPortConfiguration 917 Win32_SerialPortSetting 918 Win32_Service 919 Win32_ServiceControl 920 Win32_ServiceSpecification 921 Win32_ServiceSpecificationService 922 Win32_SettingCheck 923 Win32_Share 924 Win32_ShareToDirectory 925 Win32_ShortcutAction 926 Win32_ShortcutFile 927 Win32_ShortcutSAP 928 Win32_SID 929 Win32_SMBIOSMemory 930 Win32_SoftwareElement 931 Win32_SoftwareElementAction 932 Win32_SoftwareElementCheck 933 Win32_SoftwareElementCondition 934 Win32_SoftwareElementResource 935 Win32_SoftwareFeature 936 Win32_SoftwareFeatureAction 937 Win32_SoftwareFeatureCheck 938 Win32_SoftwareFeatureParent 939 Win32_SoftwareFeatureSoftwareElements 940 Win32_SoundDevice 941 Win32_StartupCommand 942 Win32_SubDirectory 943 Win32_SystemAccount 944 Win32_SystemBIOS 945 Win32_SystemBootConfiguration 946 Win32_SystemDesktop 947 Win32_SystemDevices 948 Win32_SystemDriver 949 Win32_SystemDriverPNPEntity 950 Win32_SystemEnclosure 951 Win32_SystemLoadOrderGroups 952 Win32_SystemLogicalMemoryConfiguration 953 Win32_SystemMemoryResource 954 Win32_SystemnetworkConnections 955 Win32_SystemOperatingSystem 956 Win32_SystemPartitions 957 Win32_SystemProcesses 958 Win32_SystemProgramGroups 959 Win32_SystemResources 960 Win32_SystemServices 961 Win32_SystemSetting 962 Win32_SystemSlot 963 Win32_SystemSystemDriver 964 Win32_SystemTimeZone 965 Win32_SystemUsers 966 Win32_TapeDrive 967 Win32_TemperatureProbe 968 Win32_Thread 969 Win32_TimeZone 970 Win32_Trustee 971 Win32_TypeLibraryAction 972 Win32_UninterruptiblePowerSupply 973 Win32_USBController 974 Win32_USBControllerDevice 975 Win32_UserAccount 976 Win32_UserDesktop 977 Win32_VideoConfiguration 978 Win32_VideoController 979 Win32_VideoSettings 980 Win32_VoltageProbe 981 Win32_WMIElementSetting 982 Win32_WMISetting 983 984 985 986 987 首先,调用ManagementObjectSearcher实例(在本文中的例子里为searcher )中的Get()方法,该方法将会把返回信息填在这个实例中。然后,你所要做的就是处理这个实例searcher中的数据。 988 989 990 foreach (ManagementObject share in searcher.Get()){// Some Codes ...} 991 992 993 每个ManagementObject的对象中都有一些,我们所需要的数据,当然我们可以接着这么处理这些数据: 994 995 996 foreach (PropertyData PC in share.Properties){//some codes ...} 997 998 999 本文中代码的其它部分只是对于ListView控件的一些操作,很简单,就不再详述了! 1000 */