我尝试使用System.Management命名空间中的几个类获取一些系统信息,但任何尝试使用ManagementObjectSearcher或ManagementObjectCollection集合项都会导致FileNotFoundException。
下面我介绍有问题的代码:
public static string GetProcessorID() {
var processorID = "";
var query = "SELECT ProcessorId FROM Win32_Processor";
var oManagementObjectSearcher = new ManagementObjectSearcher(query);
foreach (var oManagementObject in oManagementObjectSearcher.Get()) {
processorID = (string)oManagementObject["ProcessorId"];
break;
}
return processorID;
}
尝试从集合中获取下一项时,在“foreach”行中引发异常。
在装有windows xp 专业版 sp3和Visual Studio 2008 专业版的机器上观察到。我想这可能是我的 cpu 的问题,它是英特尔双核- 其他具有类似环境的机器上的相同程序可以完美运行。这些机器之间的主要区别是cpu。
MACAddress 和 SystemDrive 等其他参数提供了相同的问题,这表明它可能是软件问题(WMI?)
此处描述了非常相似的问题-> http://news.softpedia.com/news/XP-SP3-Win32-Processor-Class-Labels-Intel-Core-2-Duo-CPUs-Incorectly-90201.shtml但解决方案没有解决它。
有任何想法吗?提前致谢。
大卫