今儿个咱来聊聊我在C#里头捣鼓一个小东西时遇到的一个玩意儿——ManagementObjectSearcher
。一开始我也不知道这是个就是想搞点系统信息出来玩玩。
我在网上瞎逛,想找个法子能把电脑里头的硬件信息啥的给扒拉出来。你还别说,真让我给找到!有人提到ManagementObjectSearcher
这个东西,说是能通过WMI查询来获取各种管理对象。
啥是WMI?管它!能用就行!
我赶紧照着网上的例子,先装个叫的包。这玩意儿不在.NET Framework里头,得自己手动装一下。装好之后,就可以开始写代码。
我琢磨着,先搞个CPU的信息看看。于是我写这么一段代码:
ManagementClass mc = new ManagementClass("Win32_Processor");
ManagementObjectCollection moc = *();
foreach (ManagementObject mo in moc)
// 这里头就能拿到CPU的各种信息,想干啥就干啥
*(mo["Name"].ToString());
你猜怎么着?还真给跑通!控制台里头输出我电脑CPU的名字,当时心里那个美!
后来我又想,能不能更高级点,直接写个查询语句来获取信息?于是我又找到ManagementObjectSearcher
的另一种用法:
ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT FROM Win32_Processor");
foreach (ManagementObject mo in *())
// 这里头也能拿到CPU的各种信息
*(mo["Name"].ToString());
这段代码更简洁,直接用SQL语句查询,感觉更像那么回事。
我试着把查询语句改改,换成Win32_PhysicalMemory
,内存条的信息也出来!
有这个ManagementObjectSearcher
,我感觉自己就像个侦探,能把电脑里头的各种秘密都给挖出来。想获取啥信息,就写个对应的查询语句,简直不要太方便!
这玩意儿能干的事儿肯定不止这些,我这也就是刚入门,瞎捣鼓一番。以后有空,再深入研究研究,看看还能玩出啥花样来。
这回折腾ManagementObjectSearcher
的经历还是挺有意思的。从一开始的一头雾水,到后来的豁然开朗,再到的举一反三,感觉自己又学到不少东西。
这种自己动手,从无到有的感觉,真是太棒!