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 */